我正在使用MySQL版本6.3并尝试执行以下语法:
insert into orders(Store_ID, Product_ID, Customer_ID, Quantity, Order_Date)
values (not null, '22','33', '44','2017-03-02');
但请继续在下面收到以下错误回复:
Error Code: 1364. Field 'Orders_ID' doesn't have a default value
我已经在这里阅读了几个回复,很多人都有广泛的反馈意见......有人可以提供这个问题的解决方案而不会过于广泛吗?
谢谢
答案 0 :(得分:2)
这种情况正在发生,因为您没有为列提供值,并且该列没有默认可以依赖。
ALTER TABLE orders ALTER COLUMN Orders_ID SET DEFAULT NULL;
Null可以更改为您想要的值。
你可以这样做
ALTER TABLE orders ALTER COLUMN Orders_ID INTEGER NOT NULL AUTO_INCREMENT;
这将在每次插入时创建一个新ID,每次增量为1。
答案 1 :(得分:1)
在不知道表格列是什么的情况下(即字符串,整数等)以及你想要放入Orders_ID列的内容,很难说你应该放什么但是我可以试试在您回复/更新问题后帮助您。 :)
我猜测列Orders_ID没有设置AUTO-INCREMENT 1
功能,因此当您插入Orders表时,它不会自动递增并添加新的Orders_ID。 / p>
答案 2 :(得分:1)
如果你想要你的表有一个主键,也许你可以尝试
ALTER TABLE orders ALTER COLUMN Orders_ID MEDIUMINT NOT NULL AUTO_INCREMENT;
关于StoreId的值,您无法插入NOT NULL
值。
你可以在这里查看 Mysql Doc
答案 3 :(得分:0)
你必须在查询中为Store_id设置一个有效值,因为我知道Store_ID是一个来自商店表的外键,所以你要从一个商店中输入id
@helio_info["result"][0]["gs_thumburl"]
更改13以获取有效的Store_ID