【发布时间】:2019-10-09 07:14:45
【问题描述】:
我想知道如何在现有表中添加新列(设置为主键并设置默认值)?我试过了
ALTER TABLE table_name ADD ( column_name VARCHAR (10));
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'value1';
ALTER TABLE table_name ADD PRIMARY KEY(column_name);
>> ERROR 1138 (22004): Invalid use of NULL value
我看到了几篇帖子,但它需要删除表中我不想删除的所有现有数据。有没有其他方法可以添加新列作为主键而不删除表中的数据?
我的当前表:
我要创建的新表:
谢谢
【问题讨论】:
-
请标记您正在使用的数据库。只有当表为空时,您的代码才能工作,因为任何现有行都会为
column_name获得NULL值,这将违反主键约束。 -
创建一个不同的表并在那里插入你所有的数据。删除旧表。重命名新表。没有数据丢失。
-
@GordonLinoff 嗨,我正在使用 mysql,我编辑了我的问题 :( 而且我不允许清空表格