SQL将列名作为数据插入
是否有SQL查询将表a中的列名插入表B中的行?由于列名本质上是字符串,因此可以将它们插入其他表中 问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库SQL将列名作为数据插入,sql,database,Sql,Database,是否有SQL查询将表a中的列名插入表B中的行?由于列名本质上是字符串,因此可以将它们插入其他表中 问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库 另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。因为列名本质上是字符串,所以可以将它们插入其他表中 问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库 另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。(使用信息\u模式尝试
另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。因为列名本质上是字符串,所以可以将它们插入其他表中 问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库 另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。(使用
信息\u模式
尝试实现最大的可移植性)
(使用INFORMATION\u SCHEMA
尝试实现最大的可移植性)
根据您的实际软件可能会有所不同,但对于MySQL来说,这应该是可行的:
INSERT INTO table_b (col_name)
SELECT Field FROM (DESCRIBE table_a)
INSERT INTO table_b (col_name)
SELECT Field FROM (DESCRIBE table_a)
应该工作…什么样的SQL实现?Microsoft SQL Server?神谕MySQL?你的意思肯定是“列名”,而不是“列值”,因为
Unpivot
?一分钟内三条几乎相同的注释说明了这个问题的重要性。SQL的什么实现?Microsoft SQL Server?神谕MySQL?你的意思肯定是“列名”,而不是像Unpivot
那样的“列值”?一分钟内的三条几乎相同的注释说明了这个问题的重要性。将数据库元数据存储到数据库中时+1表示设计问题。
+1表示设计注释。我不知道这里的项目,但我想不出为什么你需要将列名存储在另一个表中,而使用更好的数据库设计无法更好地执行这些表。@Jimmy,有一些合理的方案(我已将其用于自定义数据库复制),但大多数都是@Matt-What RDBMS的版本?另外,我可以确认你的意思是列名而不是列值吗?@Matt:的确如此。请记住,“完全动态”可以是“完全无用”的同义词。无论如何,对于Oracle,使用描述答案;对于SQL Server和(IIRC)MySQL,使用信息模式答案。将数据库元数据存储到数据库中的+1表示设计问题。
+1表示设计注释。我不知道这里的项目,但我想不出为什么你需要将列名存储在另一个表中,而使用更好的数据库设计无法更好地执行这些表。@Jimmy,有一些合理的方案(我已将其用于自定义数据库复制),但大多数都是@Matt-What RDBMS的版本?另外,我可以确认你的意思是列名而不是列值吗?@Matt:的确如此。请记住,“完全动态”可以是“完全无用”的同义词。无论如何,对于Oracle使用描述答案,对于SQL Server和(IIRC)MySQL使用信息模式答案。
INSERT INTO B
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.Columns
WHERE TABLE_NAME = 'A'