专业的SQL Server、MySQL数据库同步软件
首先探索MySQL和SQLServer 2的索引:
?
在这里我们将不讨论其他索引,让我们首先来看一下MySQL和SQLServer唯一索引的奇怪之处:
首先,用于创建两个数据库的唯一联合索引的语句相同
MySQL:
-建立合并索引
创建唯一索引? stu_login?上? t_login1(stu_name,stu_pwd,login_type,测试);
SQLServer:
-创建索引
在dbo.t_login1上创建唯一索引stu_login(stu_name,stu_pwd,login_type,test);
Oracle:
-创建唯一的联合索引
在t_login1上创建唯一索引stu_login(stu_name,stu_pwd,login_type,test);
查看索引结构
-查看表中的索引结构
从user_indexes中选择*,其中table_name = upper(” T_LOGIN1″);
?
然后,该例程出现,这时,用于查看两个表的index命令发生了变化
MYSQL:
-在表格中显示索引
显示来自t_login1的索引;
SQLServer:
-查找表的索引
? exec sp_helpindex? t_login1;
Oracle视图表创建语句,表名必须大写:
-获取表创建语句
从双选择dbms_metadata.get_ddl(” TABLE”,” T_LOGIN1″);
如果您认为这是不同的,那么例程更深,请看一下看表结构的语句
MYSQL:
-查看表结构
DESC t_login1;
SQLServer:
-?查看表结构
sp_help t_login1;
sp_columns t_login1;
那么唯一联合索引又如何呢?
甚至更深。首先让我们看一下MYSQL的唯一联合索引。
首先,我们首先插入数据
-插入数据
插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,null);
INSERT INTO`t_login1` VALUES(” Ma Hongyu”,” 1606390235″,” 123456″,” 0″,null);
我已经两次插入这两个数据,结果如下:
在其他地方我们发现,当测试列为空时,MYSQL允许插入相同的数据(例程1)
然后我们将再插入两个数据
插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 2″);
INSERT INTO`t_login1` VALUES(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 3″);
结果如图所示:
这两个数据的测试字段不同,因此允许插入
然后,我们将再测试两天的完整数据:
插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 4″);
插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 4″);
这次例行程序就要来了,请看图片:
这时,不难看出唯一联合索引发挥了作用。两个相同的数据已成功。
?
因此,让我们再次看一下SQLServer,可以说这个例程很深:
首先,我们仍然要插入数据:
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);
INSERT INTO t_login1 VALUES(” Ma Hongyu”,” 1606390235″,” 123456″,” 0″,空);
结果如下:
因此,让我们深入了解一下:
插入两个相同的数据,并且一列为空
INSERT INTO t_login1 VALUES(” Zhang Hanfu”,” 1606390236″,” 123456″,” 0″,null);
INSERT INTO t_login1 VALUES(” Zhang Hanfu”,” 1606390236″,” 123456″,” 0″,null);
可以看出,第一个数据已成功插入,因此让我们尝试第二个数据:
不难看出唯一联合索引起了作用,并报告了错误,这与MYSQL完全不同
然后,我们将再次尝试相同的完整数据:
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);
同样,报告了一个成功的错误,所以这是一个大难题。
甲骨文呢?
插入数据:
-插入数据
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);
INSERT INTO t_login1 VALUES(” Ma Hongyu”,” 1606390235″,” 123456″,” 0″,空);
承诺;
然后,我们将再次插入第一个数据
-插入两个相同的数据
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);
承诺;
显然,报告了一个错误,该错误违反了唯一性,因此它与SQLServer相同,
然后我们有两个相同的数据:
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);
插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);
承诺;
它违反了唯一性规定,因此与SQLServer一致,但与MYSQL不同。
?
这是结论。如果输入正确,请发表评论并注意。将来,您将继续发布新文章。