“列'option_type_id'不能为空...”

时间:2014-07-31 23:18:56

标签: mysql sql magento

我正在编写一个sql脚本,脚本结束时会出现此错误。

“列'option_type_id'不能为空”

SET @valor = 10, @op1 := @valor * 2 - 1, @op2 := @valor * 2;
...
INSERT INTO `magento`.`catalog_product_option_type_title`
 (`option_type_title_id`, `option_type_id`, `store_id`, `title`)
VALUES (@op1, @op1, '0', 'DIREITO');

INSERT INTO `magento`.`catalog_product_option_type_title`
 (`option_type_title_id`, `option_type_id`, `store_id`, `title`)
VALUES (@op2, @op2, '0', 'ESQUERDO');

INSERT INTO `magento`.`catalog_product_option_type_price`
 (`option_type_price_id`, `option_type_id`, `store_id`, `price`, `price_type`)
VALUES (@op1, @op1, '0', '0.0000', 'fixed');

INSERT INTO `magento`.`catalog_product_option_type_price`
 (`option_type_price_id`, `option_type_id`, `store_id`, `price`, `price_type`)
VALUES (@op2, @op2, '0', '0.0000', 'fixed');

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

1 个答案:

答案 0 :(得分:0)

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

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

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

在一个班轮@valor中,在其他两个作业之前没有设置null

MySQL中对null的任何简单算术都返回null,因此@op1@op2设置为null

脚本中的其他语句将null@op1插入@op210插入@valor