MySQL中的'go'相当于什么?

Ahm*_*aly 21 mysql sql t-sql

在TSQL中,我可以说:

insert into myTable (ID) values (5)
GO
select * from myTable
Run Code Online (Sandbox Code Playgroud)

在MySQL中我无法编写相同的查询.

在MySQL中编写此查询的正确方法是什么?

Jef*_*itz 42

分号线末尾的分号.

INSERT INTO myTable (ID) values (5);
Run Code Online (Sandbox Code Playgroud)

  • 它甚至不必在行尾,仅在语句末尾 (2认同)

Dan*_*ler 13

分号是默认分隔符.但是,您可以使用DELIMITER关键字将其重新定义为您想要的任何内容.从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)
Run Code Online (Sandbox Code Playgroud)

当然,这不仅限于存储过程定义.


Gra*_*ins 9

只是一个简单的;

所以试试吧

insert into myTable(ID) values (5);
select * from myTable;
Run Code Online (Sandbox Code Playgroud)


小智 7

我认为问题是GO是批量终止符,而不是语句终止符.显式设置事务后,我得到了这段代码,而没有告诉我程序已经存在.如果没有事务语句,我会收到程序已经存在的错误.

开始交易; drop procedure如果存在usp_test; 承诺; 开始交易; 创建程序usp_test()SELECT*来自书籍; 承诺; 叫usp_test();


Dan*_*ite 6

使用分号 ( ;)。它将分开您的陈述。