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

Prosedur Tersimpan Menggunakan MySQL Workbench

Saat menggunakan editor prosedur bawaan, MySQL Workbench menambahkan beberapa perintah tambahan:

USE `test`; // <----------
DROP procedure IF EXISTS `p2`;  // <----------

DELIMITER $$
USE `test`$$ // <----------
CREATE PROCEDURE test.`p2` ()
LANGUAGE SQL
DETERMINISTIC
COMMENT 'Adds "nson" to first and last names in the record.'
BEGIN
SELECT 'Hello World';
END $$

DELIMITER ; // <----------

Perintah-perintah itu tidak sepenuhnya terkait dengan sintaks prosedur tersimpan, mereka hanyalah komoditas—klien MySQL lainnya (seperti HeidiSQL atau utilitas baris perintah resmi) tidak akan menambahkannya. Perubahan pembatas terakhir mungkin adalah pengaturan ulang untuk menghindari masalah dalam pernyataan di masa mendatang pada koneksi yang sama.

Anda perlu mengubah pembatas untuk menginstruksikan klien tentang di mana kode prosedur dimulai dan diakhiri. Masalahnya adalah bahwa badan prosedur biasanya merupakan kumpulan pernyataan SQL sehingga menghilangkan perubahan pembatas akan membuat MySQL berpikir bahwa Anda mencoba menjalankan serangkaian pernyataan, yang pertama adalah ini:

CREATE PROCEDURE test.`p2` ()
LANGUAGE SQL
DETERMINISTIC
COMMENT 'Adds "nson" to first and last names in the record.'
BEGIN
SELECT 'Hello World';

Dengan DELIMITER $$ Anda memberi tahu MySQL bahwa pernyataan lengkap Anda berasal dari CREATE ke END . Ini hanya gula sintaksis:DELIMITER bahkan bukan kata kunci SQL. HeidiSQL, misalnya, menyediakan GUI dengan kotak teks tempat Anda menulis badan prosedur, sehingga Anda tidak memerlukan solusi 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. SELECT INTO dan kesalahan variabel yang tidak dideklarasikan

  2. XAMPP/MySQL:tidak dapat membuka file tablespace tabel tunggal .\mysql\innodb_index_stats.ibd setelah restart MySQL

  3. bagaimana cara menggunakan kembali kunci utama yang dihapus di mysql?

  4. Praktik terbaik untuk bendera bit di PHP

  5. Metode tercepat untuk mengambil Pencadangan dan Pemulihan MySQL