【发布时间】:2023-01-01 20:55:29
【问题描述】:
我有 3 个表,一个名为 SKU_Data,另外两个分别名为 Fabric_Code 和 Product_Type。 SKU_Data 有 2 个外键列,一个存储 Fabric_Code 的 id,另一个存储 Product_Type 的 id。
我写了一个 SQL 事务来将数据放入 SKU_Data。 (使用 MySQL 8)
START TRANSACTION;
SELECT id INTO @fabricId FROM Fabric_Codes WHERE Fabric_Code = 'SOME_CODE';
SELECT id INTO @productTypeId FROM Product_Types WHERE Product_Type = 'SOME_TYPE';
INSERT INTO SKU_Data (Item_Sku_Code, Date_Introduced, Fabric_Id, Product_Type_Id, CP)
VALUES ('SOME_STRING_ID', '2012-04-03 14:00:45', @fabricId, @productTypeId, 41);
IF (ERROR) THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
现在我收到下面提到的错误:
SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id INTO @fabricId FROM Fabric_Codes WHERE Fabric_Code = 'VELVETS';
SELEC' at line 3
Error position: line: 2
这个错误太模糊无法解决,知道如何解决这个问题吗?
当我单独运行查询 SELECT id INTO @fabricId FROM Fabric_Codes WHERE Fabric_Code = 'VELVETS'; 时,它工作正常。
我尝试更改也不起作用的分隔符。
【问题讨论】:
-
该错误声称您尝试将代码行作为 MySQL 不支持的匿名代码块执行。
-
这个怎么解决,存储过程?你有什么建议?