我添加了几列 (100+) 属性 TINYINT(1)
和默认值 NULL
但问题是默认值必须为 0
.
有什么方法可以通过检测字段 TINYINT(1)
然后更改表来通过查询来实现吗??
请帮帮我。
最佳答案
您可以执行查询以在 INFORMATION_SCHEMA
中找到这些列,这是一组 View ,由服务器自动维护。
试试这个:
USE INFORMATION_SCHEMA;
SELECT * FROM `COLUMNS`
WHERE COLUMN_TYPE = 'tinyint(1)'
您可以在数据库或表上添加过滤器。然后,您可以直接使用此 View 创建查询:
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, ".", TABLE_NAME, " MODIFY ", COLUMN_NAME, " tinyint(1) DEFAULT 0") AS q
FROM `COLUMNS`
WHERE COLUMN_TYPE = 'tinyint(1)'
这将生成如下查询:ALTER TABLE schema.table MODIFY column tinyint(1) DEFAULT 0
,这是更改默认值所需执行的操作。
关于mysql - 将 DEFAULT 从 NULL 替换为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19611087/