我在MySQL数据库中有一个名为'user'
的表。
它有一个名为'full_name'
(varchar(255))的字段。我想将'NOT NULL'
属性设置为该列,并使用'Dummy User'
值更新该列,其中'full_name'
列包含空白值。
所以我的问题是我应该如何实现这两个东西在一个单一的更新查询?
我尝试的查询如下,但它给了我错误:
ALTER TABLE `user` MODIFY COLUMN full_name NOT NULL DEFAULT 'Dummy User' WHERE full_name = '';
正如高贵的@jens在他的评论中指出的那样,没有办法将full_name
列的类型更改为NOT NULL
和也用单个查询中的默认值替换空字符串。
下面的第一个查询将full_name
列类型更改为NOT NULL
,并将默认列值设置为Dummy User
。还将用所需的默认值替换所有已经存在的NULL
条目。我们已经完成了一半。为了覆盖具有空字符串的记录,我使用了一个简单的UPDATE
语句。
ALTER TABLE users
MODIFY COLUMN full_name VARCHAR(255) NOT NULL DEFAULT 'Dummy User';
UPDATE users
SET full_name = 'Dummy User'
WHERE full_name = ''