Sybase复制表结构和其他主流数据库的区别

栏目:Sybase 来源:网络 关注:0 时间:2019-08-16

Sybase复制表结构相信大家都比较熟悉了,下面就将对Sybase复制表结构和其他数据库系统的复制表结构方法进行比较,供您参考。
因为数据库SQL语句在各大产品中带有“方言性”,即SQL Server Sybase都是用了T-SQL,MySQL是用的标准SQL,Oracle有有自己的PL/SQL。由于这种“方言性”的差异导致很多SQL语句在移植的时候产生困难,在异构数据库的时候显得很尴尬。当然对于DBA来说,无非是查查语法而已的事。但是终究是不方便。这里就跟大家分享下我自己实验整理的,复制表结构即数据的各数据库中的语法分析。
先来说说SQL Server大家最熟悉的。

当数据库中没有新表的情况,比如有了A,没有B表。
select * into B from A --复制表及数据
select * into B from A where 1>1 --只复制表结构

当数据中已经有了B表的情况,上面就不适用了。
insert into B select * from A --复制表数据,为了避免。B表理论上应该没有数据,如果有,可能会造成违反主键。
insert into B select * from A where id>10 --加上where条件可以指定复制数据,上面没有表的情况也可以这样做。
这里要说的是,Sybase和SQL Server是一样的。因为从某种角度来说,Sybase就是SQL的原型。
接下来是MySQL。稍微语法有不同。

数据库中没有B表的情况
create table B select * from A
create table B select * from A where 1<>1 --只复制表结构

有B表的情况和SQL Server基本相同
insert into B select * from A
Oracle 基本上合MYSQL是一样的,不过语法要求更严谨。当然MySQL也可以这样写。

数据库中没有B表的情况
create table B as select * from A
create table B as select * from A where 1<>1 --只复制表结构
create table B like A--复制表结构

有B表的情况基本相同
insert into B select * from A

本文标题:Sybase复制表结构和其他主流数据库的区别
本文地址:http://www.q0738.com/sybase/1320.html