gpt4 book ai didi

mysql - 我可以将 SHOW CREATE TABLE tablename 的输出存储到变量中吗?

转载 作者:可可西里 更新时间:2023-11-01 08:05:11 24 4
gpt4 key购买 nike

我可以将 SHOW CREATE TABLE tablename 的输出存储到变量中吗?

如果可能,我该怎么做?

最佳答案

这是不可能的。虽然返回值看起来像一个标准数据集,但 SQL 解析器不允许在这样的标准查询中使用它:

SELECT `Create Table` INTO @foo FROM (SHOW CREATE TABLE bar);
-- results in ERROR 1064 near 'SHOW CREATE TABLE bar'

您可以查询information_schema 数据库来获取您想要的信息。这将提供类似的输出:

SELECT CONCAT(
'CREATE TABLE `',
t.TABLE_NAME,
'`(\n',
GROUP_CONCAT(
CONCAT(
' `',
c.COLUMN_NAME,
'` ',
c.COLUMN_TYPE,
' ',
IF(c.DATA_TYPE = 'varchar', CONCAT('COLLATE ', c.COLLATION_NAME, ' '), ''),
IF(c.IS_NULLABLE = 'NO', 'NOT NULL', ''),
IFNULL(CONCAT(' DEFAULT ', c.COLUMN_DEFAULT), ''),
' ',
c.EXTRA
)
SEPARATOR ',\n'
),
'\n) ENGINE=',
t.ENGINE,
' AUTO_INCREMENT=',
t.AUTO_INCREMENT,
' DEFAULT CHARSET=',
s.DEFAULT_CHARACTER_SET_NAME,
' COLLATE=',
t.TABLE_COLLATION
) AS create_statement
FROM information_schema.schemata s
INNER JOIN information_schema.tables t
ON s.SCHEMA_NAME = t.TABLE_SCHEMA
INNER JOIN information_schema.columns c
ON (c.TABLE_SCHEMA = t.TABLE_SCHEMA AND c.TABLE_NAME = t.TABLE_NAME)
WHERE s.SCHEMA_NAME = 'mydatabase' AND t.TABLE_NAME = 'mytable';

值得注意的异常(exception)是关键信息。

关于mysql - 我可以将 SHOW CREATE TABLE tablename 的输出存储到变量中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33311582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com