有没有一种方法可以将列符合特定条件的默认值设置为 0?例如没有默认值或者是 varchar 或 INT?
我似乎有一个包含大约 100 列的表格 (...),我不想遍历每一列并设置默认值。
这只是一台测试机,似乎与我安装的mysql版本较新有关。
谢谢!
最佳答案
您可以检查 INFORMATION_SCHEMA 以生成一系列 ALTER TABLE 语句:
例如,从给定的数据库和表中选择当前没有默认值的列:
SELECT CONCAT('ALTER TABLE `', TABLE_NAME,
'` ALTER COLUMN `', COLUMN_NAME, '` SET DEFAULT = 0;') AS _sql
FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_DEFAULT IS NULL
AND (TABLE_SCHEMA, TABLE_NAME) = ('mydatabase', 'mytable');
您可以根据列的其他属性更改条件,例如数据类型等
关于mysql - 在 mysql Alter Table 中不存在默认值的情况下将默认值设置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388771/