gpt4 book ai didi

mysql - SQL 强制我使用默认值和属性

转载 作者:行者123 更新时间:2023-11-29 20:48:57 25 4
gpt4 key购买 nike

确实是奇怪的麻烦!

当(My)SQL向我的表添加一些属性时,我遇到了这个问题,即使我运行正确的命令并得到“SUCCESS”回复,我也不想在那里并且无法更改这些属性。

以下是创建此类表的代码:

CREATE TABLE `KIIS_EVENT_APPLICATION`
(
`ID_USER` smallint(3) unsigned NOT NULL,
`ID_EVENT` smallint(5) unsigned NOT NULL,
`COMES` timestamp,
`LEAVES` timestamp,
`TRANSPORT_THERE` varchar(30) COLLATE cp1250_czech_cs,
`TRANSPORT_BACK` varchar(30) COLLATE cp1250_czech_cs,
`ROLE` varchar(30) COLLATE cp1250_czech_cs NOT NULL,
`RELEVANCE` tinyint(1) unsigned NOT NULL,
FOREIGN KEY (`ID_EVENT`) REFERENCES `KIIS_EVENTS`(`ID_EVENT`),
FOREIGN KEY (`ID_USER`) REFERENCES `KIIS_USERS`(`ID_USER`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1250 COLLATE cp1250_czech_cs

让我们看看结果: enter image description here黄色突出显示了我没有要求的事情。

如果我运行查询,例如

ALTER TABLE  `KIIS_EVENT_APPLICATION` CHANGE  `COMES`  `COMES` TIMESTAMP NOT NULL;

页面显示,已成功完成,但没有任何变化。

如何使 COMES 列与 LEAVES 列相同?

<小时/>

是否是缺少主键导致的?当我有 2 个外来人员时,我还需要一个吗(这是好的 SQL 设计实践吗?)?

最佳答案

Michael - sqlbot评论里说得对。

ALTER TABLE KIIS_EVENT_APPLICATION MODIFY COLUMN COMES TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'; or more correctly, ... TIMESTAMP NULL DEFAULT NULL

The first timestamp column in a table gets magical behavior by default prior to MySQL Server 5.6.

我添加了

timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'

具有这种行为的所有列的属性,它工作得很好。

太棒了!

关于mysql - SQL 强制我使用默认值和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38214820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com