是否有任何SQL查询可以获取 MySql 数据库中现有表的语法?
意图: 我处于使用数据库的早期阶段,我正在使用 MySql 工作台来创建表并在需要时更新它们。在某些时候,在某些情况下,我希望拥有表格现在持有的语法,以便记录它或将其粘贴到 StackOverflow 之类的论坛中(期望我可以显示所有约束,实际上是表上的外键约束以一种简单的方式)。
请让我知道是否有任何解决方法。
小智 7
您可以使用
SHOW CREATE TABLE <table_name>;来获取 CREATE TABLE 语句。例如。SHOW CREATE TABLE acl_user_role;这将显示表名和 CREATE TABLE 语句,例如:
CREATE TABLE `acl_user_role` (
`UserId` INT(10) UNSIGNED NOT NULL,
`RoleId` SMALLINT(5) UNSIGNED NOT NULL,
PRIMARY KEY (`UserId`,`RoleId`),
KEY `FK_UserRole_Role` (`RoleId`),
CONSTRAINT `FK_UserRole_Role` FOREIGN KEY (`RoleId`) REFERENCES `acl_role` (`RoleId`),
CONSTRAINT `FK_UserRole_User` FOREIGN KEY (`UserId`) REFERENCES `user` (`UserId`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)
如果您想了解特定表的键,请使用类似
SHOW KEYS FROM acl_user_role;
如果您想获取所有引用其他表的键和约束(如外键引用),请使用:
SELECT * FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE TABLE_NAME = '<your_table_name>' AND TABLE_SCHEMA = '<your_database_name>';
-- Example
SELECT * FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE TABLE_NAME = 'acl_user_role' AND TABLE_SCHEMA = 'db_shop';
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助你...
| 归档时间: |
|
| 查看次数: |
7979 次 |
| 最近记录: |