我正在编写一个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
。