2009-04-18 8 views

risposta

37

Punto e virgola alla fine della riga.

INSERT INTO myTable (ID) values (5); 
+1

Non deve essere nemmeno alla fine della riga, solo alla fine della dichiarazione – soulmerge

+0

ho creato un'istruzione di inserimento con ID = 0, quindi ho modificato il campo in incremento automatico. È stato aggiunto come ID = 1 .. – zeetit

8

Semplicemente semplice;

quindi cercate

insert into myTable(ID) values (5); 
select * from myTable; 
4

Utilizzare un punto e virgola (;). Separerà le tue dichiarazioni.

13

Il punto e virgola è il delimitatore predefinito. Puoi comunque ridefinirlo con qualsiasi cosa desideri con la parola chiave DELIMITER. Dal manuale MySQL:

mysql> delimiter // 

mysql> CREATE PROCEDURE simpleproc (OUT param1 INT) 
    -> BEGIN 
    -> SELECT COUNT(*) INTO param1 FROM t; 
    -> END; 
    -> // 
Query OK, 0 rows affected (0.00 sec) 

mysql> delimiter ; 

mysql> CALL simpleproc(@a); 
Query OK, 0 rows affected (0.00 sec) 

Questo non è limitato alle definizioni di stored procedure, naturalmente.

5

Penso che il problema è che GO è un terminatore batch, non un terminatore di istruzioni. Dopo aver impostato esplicitamente le transazioni, ho ottenuto questo codice per l'esecuzione senza dirmi che la procedura esiste già. Senza le istruzioni di transazione, ottengo un errore che la procedura esiste già.

avviare la transazione; procedura di rilascio se esiste usp_test; commit; avvia la transazione; CREATE PROCEDURE usp_test() SELECT * dai libri; commit; chiama usp_test();

Problemi correlati