我正在编写一个sql脚本,该脚本的结尾出现此错误。

“列'option_type_id'不能为空”

SET @valor = 10,@ op1:= @valor * 2-1,@ op2:= @valor * 2;
...
插入到'magento'.`catalog_product_option_type_title`
 (“ option_type_title_id”,“ option_type_id”,“ store_id”,“ title”)
值(@ op1,@ op1,'0','DIREITO');

插入到'magento'.`catalog_product_option_type_title`
 (“ option_type_title_id”,“ option_type_id”,“ store_id”,“ title”)
值(@ op2,@ op2,'0','ESQUERDO');

插入到'magento'.`catalog_product_option_type_price`
 (“ option_type_price_id”,“ option_type_id”,“ store_id”,“ price”,“ price_type”)
值(@ op1,@ op1,'0','0.0000','固定');

插入到'magento'.`catalog_product_option_type_price`
 (“ option_type_price_id”,“ option_type_id”,“ store_id”,“ price”,“ price_type”)
值(@ op2,@ op2,'0','0.0000','固定');


我已经测试了其他条目,并且工作正常,但这些条目失败。
请帮我。非常感谢你!

最佳答案

显然,您可以使用=:=设置变量,因此我删除了其他答案。

您需要将第一行分成两个SET命令:

SET @valor := 10;
SET @op1 := @valor * 2 - 1,@op2 := @valor * 2;


在一个班轮中,在其他两个作业之前未设置@valor,对于这些作业,未设置null

MySQL中任何有关null的简单算法都将返回null,因此@op1@op2设置为null

脚本中的其他语句将为null@op1插入@op2,但为10插入@valor

10-05 17:51