如何设置mysql的默认值

时间:2017-03-09 21:41:29

标签: mysql

我正在使用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

我已经在这里阅读了几个回复,很多人都有广泛的反馈意见......有人可以提供这个问题的解决方案而不会过于广泛吗?

谢谢

4 个答案:

答案 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