是否可以使用SQL过程更改所有表的默认值?

时间:2017-05-12 10:35:00

标签: mysql sql

我需要更改sql表字段的默认值来自' none'到' null'其中数据类型是char varchar longtext等。如果不是' none',我想保留默认值。我需要改变超过500个表。有没有办法这样做?我应该使用PL吗?有没有其他方法可以这样做?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我假设您要将none更新为NULL,并且该列的类型为varchar

 update table_name set column = null where column = 'none';

您还需要更新表的模式,需要使用更改将默认值设置为NULL。

答案 1 :(得分:0)

代码是:

ALTER TABLE 'tablename' ALTER COLUMN 'columnname' SET DEFAULT 'none'

首先,我使用此查询从数据库中选择了所有表:

$result = mysql_query("SHOW TABLES FROM 'database'";

使用循环选择所有列:

mysql_fetch_field 

然后我运行代码:它有效。感谢每一个试图帮助我的人。