Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

kesalahan pembatas mysql

Saya akan menghapus titik koma setelah END .

    ...
END
|
DELIMITER ;

Kembali komentar Anda, Anda tidak dapat menggunakan pembatas saat ini saat mendeklarasikan pembatas baru. Kedengarannya membingungkan, tetapi pertimbangkan jika Anda melakukan ini:

DELIMITER |;

Sekarang MySQL akan berpikir pembatasnya adalah "|;" (dua karakter, pipa dan titik koma). Jika Anda memikirkannya, DELIMITER harus diperlakukan dengan cara khusus oleh klien MySQL. Itu satu-satunya pernyataan yang tidak bisa diikuti oleh pembatas saat ini.

Jadi saat menyetel pembatas ke pipa, lakukan ini:

DELIMITER |

Saat mengaturnya kembali ke titik koma, lakukan ini:

DELIMITER ;

FWIW, saya menjalankan yang berikut ini tanpa kesalahan pada database pengujian lokal saya di MySQL 5.0.75:

DROP FUNCTION IF EXISTS PersonName;
DELIMITER |

CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
  DECLARE pname CHAR(20) DEFAULT '';
  SELECT name INTO pname FROM family WHERE ID=personID;
  RETURN pname;
END
|
DELIMITER ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menyimpan kata sandi dengan aman di MySQL dan mengautentikasi ke layanan eksternal?

  2. Memasukkan data blob di Java menggunakan PreparedStatement

  3. Bagaimana cara membuat pengguna MySQL hanya-baca?

  4. Bagaimana cara menampilkan database MySQL pada skrip PHP?

  5. Gunakan kelas basis data PDO tanpa membuat koneksi baru setiap saat?