在我的远程服务器上,我需要更新所有数据库中表的列。我怎么能一次完成这一切?我有超过一百个拥有相同表格的数据库。
ALTER TABLE tablename MODIFY columnname VARCHAR(255);
答案 0 :(得分:2)
您可以编写SQL查询来发出执行此操作的脚本。该查询查看描述服务器中列的information_schema
表,并生成一系列ALTER
个查询。然后运行这些查询。
SELECT CONCAT(' ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME,
'` MODIFY `',COLUMN_NAME,'` VARCHAR(255);') ddl
FROM information_schema.`COLUMNS`
WHERE TABLE_NAME = 'tablename'
AND COLUMN_NAME IN ('columnname')
没有任何oneliner可以做ALTER TABLE *.tablename
或类似的事情。