gpt4 book ai didi

mysql - 插入现有表中新添加的列

转载 作者:行者123 更新时间:2023-12-01 00:00:33 24 4
gpt4 key购买 nike

我在数据库中已经有一个带有字段的表“用户”

create Table user (
id INT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY,
username varchar(20) NOT NULL,
password varchar(20) NOT NULL,
profilename varchar(20) NOT NULL,
email varchar(40) NOT NULL,
socialemail varchar(40) NOT NULL)engine=InnoDB;

规定的列也包含值

我修改了表格并添加了更多列

ALTER TABLE user
ADD COLUMN enabled varchar(1),
ADD COLUMN accountnonexpired varchar(1),
ADD COLUMN credentialsnonexpired varchar(1),
ADD COLUMN accountnonlocked varchar(1);

现在,当我在 MYSQL 中使用以下命令将值插入新列时。

insert into user
(id,enabled,accountnonexpired,credentialsnonexpired,accountnonlocked) values ('1','Y','Y','Y','Y'),('2','Y','Y','Y','Y');

我遇到了一个错误

Error Code: 1364. Field 'username' doesn't have a default value

谁能告诉我为什么?在新列中插入值的正确方法应该是什么?

enter image description here

最佳答案

INSERT 向您的表中添加新行,这些行必须具有非空用户名才能使 INSERT 成功 这不是 100% 清楚,但我认为您是说要为所有现有行设置这些新列的值。为此,您需要 UPDATE 而不是 INSERT:

UPDATE user SET id='1', enabled = 'Y', accountnonexpired = 'Y' WHERE 1

为简洁起见,我省略了您的一些专栏,但您明白了。您可能还想更改表格,使这些值成为将来插入的新行的 DEFAULT

关于mysql - 插入现有表中新添加的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853684/

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