将DEFAULT从NULL替换为0

时间:2013-10-26 19:44:05

标签: mysql sql

我添加了多个列(100+),其中包含属性TINYINT(1)和默认值NULL,但问题是默认值必须为0

有没有办法通过检测字段TINYINT(1)然后更改表格来查询?

请帮帮我。

1 个答案:

答案 0 :(得分:2)

您可以执行查询以查找INFORMATION_SCHEMA中的那些列,这些列是由服务器自动维护的一组视图。

试试这个:

USE INFORMATION_SCHEMA;
SELECT * FROM `COLUMNS`
WHERE COLUMN_TYPE = 'tinyint(1)'

您可以在数据库或表格上添加过滤器。然后,您可以使用此视图直接创建查询:

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,这是您需要执行以更改默认值的内容。