1

TINYINT(1)我添加了几个带有属性和默认值的列(100+),NULL但问题是默认值必须为0.

有什么办法可以通过检测字段TINYINT(1)然后更改表来通过查询来做到这一点?

请帮我。

4

1 回答 1

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

于 2013-10-26T20:01:06.857 回答