MySQL系统库/表/列 |
达梦系统库/表/列 |
---|---|
Information_schema.columns column_name |
sys.syscolumns name |
information_schema.columns is_nullable |
sys.syscolumns nullable$ |
information_schema.columns column_type |
sys.syscolumns type$ |
information_schema.columns column_comment |
sys.syscolumncomments comment$ |
information_schema.columns extra |
sys.syscolumns info2 |
information_schema.columns column_key |
sys.syscons type$ |
information_schema.columns ordinal_position |
sys.syscolumns colid |
information_schema.columns table_schema |
sys.sysobjects name |
格式为:[数据库].[表名] [列名],例如Information_schema.columns column_name。 |
SQL语句转换示例:
select column_name, column_type, column_comment from information_schema.columns;
select sc.name column_name, type$ column_type, scc.comment$ column_comment from sys.syscolumns sc LEFT JOIN SYS.SYSCOLUMNCOMMENTS SCC ON sc.NAME = scc.COLNAME;
replace into可用merge into替代,在达梦数据库中使用merge into语法需要指定唯一键。其功能是在唯一键存在的情况下更新数据,在唯一键不存在的情况下执行插入操作。
SQL语句转换示例:
replace into sys_user_role (user_id, role_id) values (3, 3); --user_id是唯一键,当user_id存在时更新记录,不存在时插入数据
MERGE INTO RY.SYS_USER_ROLE USING (select 3 as user_id, 3 as role_id) tmp --将需要插入或更新的数据以select的方式组成一张临时表tmp ON RY.SYS_USER_ROLE.user_id = tmp.user_id --以SYS_USER_ROLE表的user_id字段为唯一键和插入的数据的user_id做比较 WHEN matched THEN --当存在需要插入的user_id时更新表内的数据 UPDATE SET RY.SYS_USER_ROLE.role_id = tmp.role_id --更新表中的role_id WHEN NOT matched THEN --当不存在需要插入的user_id时直接插入数据 INSERT VALUES ( tmp.user_id, tmp.role_id);
GoldenDB不支持DB2的NEXTVAL FOR语法,可采用替代方案来实现类似序列的功能。支持以下两种方式:
SQL语句转换示例:
SELECT NEXTVAL FOR employee_seq FROM SYSIBM.SYSDUMMY1;
CREATE SEQUENCE employee_seq START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 999999999 CACHE 20;
SELECT employee_seq.NEXTVAL;