oracle、sqlserver、mysql、postgresql根据表名获取创建表的DDL
时间: 2023-12-07 19:03:10 浏览: 222
不同的数据库管理系统(DBMS)对应的SQL语句略有不同:
- Oracle:`SELECT dbms_metadata.get_ddl('TABLE', 'table_name') FROM dual;`
- SQL Server:`SELECT definition FROM sys.sql_modules WHERE object_id = object_id('table_name');`
- MySQL:`SHOW CREATE TABLE table_name;`
- PostgreSQL:`SELECT pg_get_tabledef('table_name')`
注意,这些查询语句都是区分大小写的。另外,MySQL和PostgreSQL的查询语句返回的是一个包含表DDL的字符串,而Oracle和SQL Server的查询语句返回的是一个包含DDL的结果集。
相关问题
oracle、mysql、sqlserver、postgresql根据触发器名获取触发器的DDL
1. Oracle:
在Oracle中,可以使用以下语句获取指定触发器的DDL:
```
SELECT DBMS_METADATA.GET_DDL('TRIGGER', '<TRIGGER_NAME>', '<OWNER>') FROM DUAL;
```
其中,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称,`<OWNER>`是指触发器所属的用户或模式。
2. MySQL:
在MySQL中,可以使用以下语句获取指定触发器的DDL:
```
SHOW CREATE TRIGGER `<TRIGGER_NAME>`;
```
其中,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称。
3. SQL Server:
在SQL Server中,可以使用以下语句获取指定触发器的DDL:
```
SELECT OBJECT_DEFINITION(OBJECT_ID('<TRIGGER_SCHEMA>.<TRIGGER_NAME>')) AS [TRIGGER_DEFINITION];
```
其中,`<TRIGGER_SCHEMA>`是指触发器所属的模式,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称。
4. PostgreSQL:
在PostgreSQL中,可以使用以下语句获取指定触发器的DDL:
```
SELECT PG_GET_TRIGGERDEF('<TRIGGER_NAME>', '<TABLE_NAME>', '<SCHEMA_NAME>');
```
其中,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称,`<TABLE_NAME>`是指触发器所作用的表的名称,`<SCHEMA_NAME>`是指触发器所属的模式。
oracle、sqlserver、mysql、postgresql根据视图名获取视图的DDL
不同的数据库管理系统(DBMS)对应的SQL语句略有不同:
- Oracle:`SELECT dbms_metadata.get_ddl('VIEW', 'view_name') FROM dual;`
- SQL Server:`SELECT definition FROM sys.sql_modules WHERE object_id = object_id('view_name');`
- MySQL:`SHOW CREATE VIEW view_name;`
- PostgreSQL:`SELECT pg_get_viewdef('view_name', true);`
注意,这些查询语句都是区分大小写的。另外,MySQL和PostgreSQL的查询语句返回的是一个包含视图DDL的字符串,而Oracle和SQL Server的查询语句返回的是一个包含DDL的结果集。
阅读全文