📅  最后修改于: 2023-12-03 15:41:28.394000             🧑  作者: Mango
如果你需要获取数据库中的表 SQL,可以通过以下SQL语句来实现:
SHOW CREATE TABLE table_name;
其中table_name
为需要获取SQL的表的名称。执行该语句后,将返回该表的创建SQL,可以直接在MySQL中执行该SQL来创建该表,也可以根据需要进行修改。
如果需要获取所有表的SQL,可以使用以下SQL语句:
SHOW TABLES;
该语句将会返回数据库中所有的表的名称。然后再使用循环语句将每个表的创建SQL语句获取出来,可以参考以下示例:
SET GROUP_CONCAT_MAX_LEN=9999999;
SELECT GROUP_CONCAT(create_table_sql SEPARATOR '' )
FROM (
SELECT CONCAT('SHOW CREATE TABLE ', table_name, ';') AS show_create_table
FROM information_schema.tables
WHERE table_schema = 'database_name'
) AS table_sql
CROSS JOIN (SELECT @create_table_sql := '') AS init
JOIN (
SELECT IF(
SUBSTRING_INDEX(TABLE_COLLATION,'_',1) IN ('utf8', 'utf16', 'utf32'),
CONCAT('SET NAMES ', SUBSTRING_INDEX(TABLE_COLLATION,'_',1),';\n'),
''
) AS charset,
CONCAT(table_name, ' ', create_table_sql, ';\n') AS create_table_sql
FROM information_schema.tables
WHERE table_schema = 'database_name'
) AS create_tables
WHERE table_sql.show_create_table = CONCAT('SHOW CREATE TABLE ', create_tables.table_name, ';')
GROUP BY create_tables.table_name;
该语句将会返回所有表的创建SQL语句,包括表的字符集、索引、外键等信息,可以直接在MySQL中执行该SQL来创建整个数据库。
以上就是获取数据库中表SQL的方法,希望对程序员们有所帮助。