【问题标题】:Add new column to the whole database table向整个数据库表添加新列
【发布时间】:2018-05-17 14:42:31
【问题描述】:

我有一个数据库 (aca),我需要使用一个 sql 查询向所有表中添加一个新列。

我使用了this approach,但在应用 sql 查询时出现错误。

SELECT CONCAT('ALTER TABLE ',
table_schema,
'.',
table_name,
' ADD COLUMN parent default 0;') AS ddl
INTO OUTFILE '/tmp/alter_table.sql'
FROM information_schema.tables
WHERE table_schema = 'aca' 
AND table_type = 'base table';

\. /tmp/alter_table.sql

这个错误:

1 - 无法创建/写入文件 '\tmp\alter_table.sql'(错误代码:2 - 否 这样的文件或目录)

请问有什么想法吗?

【问题讨论】:

  • 为什么你不想在动态获取 .SQL 文件时获取输出。

标签: mysql sql-server database alter-table


【解决方案1】:

删除输入文件并在查询下运行

SELECT CONCAT('ALTER TABLE ',
table_schema,
'.',
table_name,
' ADD COLUMN parent default 0;') AS ddl

FROM information_schema.tables
WHERE table_schema = 'aca' 
AND table_type = 'base table';

【讨论】:

  • 它给了我一个 ddl 表,它的长度与表的数量相同,
  • 每行 ddl ALTER TABLE aca.a1a ADD COLUMN parent INTEGER def..
  • 它实际上并没有添加到 aca 表中!
猜你喜欢
  • 1970-01-01
  • 2017-07-21
  • 2021-06-08
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
相关资源
最近更新 更多