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

Saya tidak dapat mengetahui kesalahan apa yang saya lakukan dalam membuat Query MYSQL ini

  • Anda perlu menyetel Pembatas ke apa saja kecuali ;
  • Opsional, beri tanda centang jika nama prosedur tersimpan yang sama sudah ada.
  • Pada akhirnya, definisikan ulang Pembatas kembali ke ;
  • Kecuali, Anda akan menggunakan variabel x di luar prosedur tersimpan ini; Anda benar-benar tidak perlu menggunakan @; itu membuat variabel tersedia di mana saja dalam sesi tertentu).

Coba (penjelasan lebih lanjut di komentar):

CREATE TABLE t1 (s1 INT, PRIMARY KEY (s1)); -- create the table

DELIMITER $$ -- redefine the delimiter to $$ (for eg)

DROP PROCEDURE IF EXISTS `handlerdemo` $$ -- drop previous if exists

CREATE PROCEDURE handlerdemo ()
  BEGIN

    DECLARE x INT DEFAULT 0; -- datatype is INT 
    -- also a good practice to set default value

    SET x = 1; -- no need to use in Session context
    INSERT INTO t1 VALUES (x); -- use variable name here instead of literal value

    SET x = 2; 
    INSERT INTO t1 VALUES (x); 

  END $$ -- remember that delimiter is $$ right now

-- redefine the Delimiter back to ;
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. Saldo Debit Kredit Saldo Terbuka MySQL

  2. Implikasi ruang disk dari pengaturan nilai kolom MySQL ke NULL alih-alih 0 atau ''

  3. Pada kunci duplikat abaikan?

  4. Memasukkan daftar yang menyimpan banyak nilai di MySQL menggunakan pymysql

  5. Cara Mengoptimalkan Kinerja MySQL Menggunakan MySQLTuner