1

前两个小时之前,我对程序一无所知。到目前为止,我只学习了一个查询过程。但是,如果我需要在一个过程中运行多个查询假设有两个查询,那么我该怎么做呢?假设我想在我的地区表中插入一个地区,然后想从该表中选择所有地区名称,包括我现在插入的最后一个地区。那我应该怎么写我的程序呢?这是我在下面给出的选择和插入查询。请记住,我正在使用 sqlyog。我的查询如下:

选择查询>>>

SELECT * FROM district;

插入查询>>>

INSERT INTO district(district_name) VALUES('District');
4

3 回答 3

2

您可以在正文中编写一个语句,在这种情况下,程序可以是这样的(没有 BEGIN...END 子句) -

CREATE PROCEDURE procedure1()
INSERT INTO table1 VALUES(NULL);

对于某些语句,您需要使用 BEGIN...END 子句 -

DELIMITER ||
CREATE PROCEDURE procedure1()
BEGIN
  INSERT INTO table1 VALUES(NULL);
  INSERT INTO table1 VALUES(NULL);
  INSERT INTO table1 VALUES(NULL);
END||

这是一篇关于分隔符的文章 - MySQL 中的 DELIMITER 是什么以及它的用途

于 2013-03-12T11:27:46.797 回答
1

您可以在一个存储过程中一个接一个地运行多个 SQL 语句。您可以创建这样的过程。

CREATE PROCEDURE MyProcedure()
    BEGIN
        INSERT INTO district(district_name) VALUES('District');
        SELECT * FROM district;
    END;
于 2013-03-12T11:27:44.243 回答
1

在 mysql 中,您可以简单地将多个语句放入 proc 中,用 ; 分隔。

像这样的东西应该工作:

delimiter //
CREATE PROCEDURE myProc  ( )
BEGIN
    INSERT INTO district(district_name) VALUES('District');
    SELECT * FROM district;
END//
于 2013-03-12T11:28:00.370 回答