如何在mysql中一次改变多个表?
如何在mysql中一次改变多个表?
我正在尝试修改多个表格,并将username
VARCHAR列的大小更改为999,因为它当前的大小太小了,导致事情出了问题。 我该怎么做?
我尝试了以下方式,这对一个表格有效,但在尝试更新多个表名时返回错误:
ALTER TABLE `TABLE_NAME` CHANGE `username` VARCHAR( 999 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
admin 更改状态以发布 2023年5月24日
我发现唯一的方法是通过外部文件来实现。这是我的实现:
function changeSchema($oldName, $newName, $type, $len) { $res = mysql_query("SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = '$oldName' AND TABLE_SCHEMA = 'your_database_name'"); if($res) while($line=mysql_fetch_object($res)) mysql_query("ALTER TABLE `$line->TABLE_NAME` CHANGE `$oldName` `$newName` $type( $len ) NOT NULL "); } }
然后我可以轻松地修改任何我想要的表格。