我试图以根用户身份执行此SQL:
UPDATE information_schema.COLUMNS SET COLUMN_NAME = CONCAT('emp',COLUMN_NAME) WHERE TABLE_SCHEMA = 'edsdb'
Run Code Online (Sandbox Code Playgroud)
但是出现以下错误:
SQL Error [1044] [42000]: Access denied for user 'root'@'localhost' to database 'information_schema'
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'root'@'localhost' to database 'information_schema'
Run Code Online (Sandbox Code Playgroud)
我需要“固定”列名的这些表中有很多列。是否可以直接在SQL中执行此操作?
根据MySQL文档(在此处),information_schema包含只读表,views因此您不能更改它:
INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们关联的文件,并且您不能在它们上设置触发器。另外,没有使用该名称的数据库目录。
您需要使用ALTER TABLE命令来代替,例如:
ALTER TABLE `edsdb` CHANGE `id` `empid` INT;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |