我有一个需要向多个表插入新记录的过程,我想我会尝试使用存储过程,因为我在 PHP 5.3.5 中开发并使用 MySql Server 5.5.8。
创建了一个简单的插入过程,但我想获取最近添加的 id 的值,以便它可以用于后续插入。
表的 id 值设置为 auto_increment,并且是 bigint(20)。insert 语句有效,但是当我尝试使用 DECLARE 语句时,出现以下错误:
#1064 - 您的 SQL 语法有错误;检查与您的 >MySQL 服务器版本相对应的手册,以了解在 'DECLARE @i BIGINT(20); 附近使用的正确语法;END' 在 >8 行
存储过程如下:
CREATE PROCEDURE test(
IN a VARCHAR(255),
IN b VARCHAR(255),
IN c BIGINT(20)
)
BEGIN
INSERT INTO tableA (datetime_created) VALUE (NOW());
DECLARE @i BIGINT(20); // or BIGINT(20);
SET @i = SELECT id FROM tableA ORDER BY DESC LIMIT 1;
INSERT INTO tableB(attr1, attr2, attr3, attr4) VALUES (a, b, c, @i);
END
我删除了所有语句,当我构建我认为是简单的存储过程时,一旦添加第二行,错误就会出现。任何帮助将不胜感激,因为我一直在寻找并试图解决这个问题,但我还没有找到解决方案。