关于数据库设计时的自动增量字段的问题

自动增量不能作为主键(需要被其它表作为外键的主键),主要原因是:

1、当需要进行事务插入时,会有矛盾。如:Order(OrderID, OrderName)与OrderDetail(OrderID,....),由于这两个表的数据需要采用事务插入,那就会出现是先有鸡还是先有蛋的问题。因为OrderID必须要插入后才会产生,然而OrderDetail表需要与Order表同时插入。

2、由于自动增量不能手动输入,所以会在以后维护(特别是多库合并时)会带有很大的麻烦。其中第2点。后来又有人说,自动增量是可以手动输入的。为了验证这一点,重新做了测试。

1、对于MySQL

建表User(ID,Name),其中ID为自动增量。连续插入几条记录后:

1
2
3
4
1,aaa
2,bbb
3,ccc
4,ddd

这时,可以通过update语句来使第2条记录改为(5,bbb),但是,在插入第5条记录时,如果不手动指定ID为6的话,会报主键冲突。因为自动增量是从最后一个值+1的,而不是取最大值+1的。

但是,在报主键冲突之后,如果再次尝试时,会成功。因为此时自增量已为6了。

2、对于MSSQL Server

根本无法采用Update语句来修改自动增量的值。

综上所述。以后还是尽量不要采用自动增量来作为需要给其它表作为外键的主键。

但是自动增量还是有用的。如果该表相对独立,即主键不需要给其它表作为外键时,可以采用自动增量。

或者,可以为表建两个字段,一个为自动增量作为主键,一个为非自动增量作为唯一索引,后者作为其它表的外键。

转自:http://www.jiazi.cn/blog/?id=43

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 达梦数据库和MySQL数据库可以使用如下方法进行增量同步: 1. 使用数据库内置的复制功能:达梦数据库提供了多种复制方式,包括基于SQL语句的复制、基于数据文件的复制、基于日志文件的复制等。这些复制方式可以在不停机的情况下进行数据库增量同步。 2. 使用第三方的数据库同步工具:市面上有很多专门用于数据库增量同步的工具,如Navicat、Ora2pg等,这些工具可以跨越不同数据库类型之间进行数据库同步。 3. 使用编程语言进行数据库同步:可以使用编程语言,如Java、Python等,通过数据库的API来实现数据库增量同步。 无论使用哪种方式,都需要确保数据的一致性,在同步过程中应避免数据的丢失或冲突。 ### 回答2: 达梦数据库与MySQL数据库可以通过使用数据同步工具来实现增量同步。 首先,需要安装并配置好数据同步工具。常用的数据同步工具有Maxwell、Canal等。这些工具可以监听MySQL数据库的binlog,并实将变更数据写入到达梦数据库中。 其次,需要在达梦数据库中创建与MySQL数据库相同的表结构。可以通过使用DDL语句在达梦数据库中创建表,并保持和MySQL数据库中表的结构一致。 然后,需要配置数据同步工具的参数,确保工具能够正确地连接到MySQL数据库和达梦数据库。配置参数包括MySQL和达梦数据库的连接地址、用户名、密码等。 最后,启动数据同步工具,它会监听MySQL数据库的binlog,并将变更数据实写入到达梦数据库中。当MySQL数据库中有数据变更,数据同步工具会自动将变更同步到达梦数据库中,实现增量同步的功能。 在实际应用中,可以根据需求设置同步的粒度和同步的频率。可以选择全量同步和增量同步的方式,以及定或实同步的频率,以满足具体业务需求。 需要注意的是,在进行数据同步前,需要确保达梦数据库中没有与MySQL数据库冲突的数据。此外,在数据同步过程中,需要保证源数据库和目标数据库的一致性,以避免数据不一致的问题。 总之,通过以上步骤和配置,就可以实现达梦数据库与MySQL数据库增量同步。 ### 回答3: 达梦数据库与MySQL数据库之间的增量同步可以通过数据复制的方式实现。以下是一个基本的步骤: 1. 配置MySQL数据库:首先,在MySQL数据库中创建一个具有复制权限的用户,并分配适当的权限。添加以下参数到MySQL配置文件(my.cnf)中,启用二进制日志记录: ``` log-bin=mysql-bin binlog-format=ROW server-id=1 ``` 2. 配置达梦数据库:在达梦数据库的配置文件(dm.ini)中启用增量日志功能,并指定需要同步的表: ``` [INCREMENTAL LOG] ENABLED=TRUE TABLES=table1, table2, ... ``` 3. 安装数据同步工具:下载并安装MySQL到达梦数据库的数据同步工具,如Data Sync工具。 4. 配置数据同步工具:在数据同步工具中,设置源数据库为MySQL,目标数据库为达梦数据库。指定需要同步的表和字段映射关系,并启用增量同步选项。 5. 初始化同步:使用数据同步工具执行初始同步操作,将MySQL数据库中的数据复制到达梦数据库。 6. 启动增量同步:在数据同步工具中启动增量同步功能。这将监视MySQL数据库的二进制日志并捕捉变更,然后将其应用到达梦数据库中。 需要注意的是,达梦数据库和MySQL数据库之间的增量同步可能会面临一些挑战,例如数据类型转换、主键冲突等问题。确保在同步过程中进行适当的数据验证和测试,并根据具体情况调整配置和映射关系,以确保数据的准确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值