前后台没有分开,为了区分前后台用户,所以分表,但是ID不能重复,因为关联了权限表.

这里实现后台用户表使用奇数ID

前台用户表使用偶数ID

MYSQL 没有sequence

SET @@auto_increment_offset
SET @@auto_increment_increment

也只能在当前查询有效.所以这也是权宜之计

  1. SET FOREIGN_KEY_CHECKS=0;
  2.  
  3. -- ----------------------------
  4. -- Table structure for acl_user
  5. -- ----------------------------
  6. DROP TABLE IF EXISTS `acl_user`;
  7. CREATE TABLE `acl_user` (
  8. `id` int(11) NOT NULL AUTO_INCREMENT,
  9. `userName` varchar(50) NOT NULL COMMENT '用户名',
  10. `password` varchar(50) NOT NULL COMMENT '密码',
  11. `enabled` tinyint(4) DEFAULT NULL,
  12. `accountNonExpired` tinyint(4) DEFAULT NULL,
  13. `credentialsNonExpired` tinyint(4) DEFAULT NULL,
  14. `accountNonLocked` tinyint(4) DEFAULT NULL,
  15. `desc` varchar(255) DEFAULT NULL COMMENT '描述',
  16. `insertDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  17. PRIMARY KEY (`id`)
  18. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  19. DROP TRIGGER IF EXISTS `InsertAclUser`;
  20. DELIMITER ;;
  21. CREATE TRIGGER `InsertAclUser` BEFORE INSERT ON `acl_user` FOR EACH ROW Begin
  22. SET session auto_increment_offset=1;
  23. SET session auto_increment_increment=2;
  24. end
  25. ;;
  26. DELIMITER ;
  27.  
  28. -- ----------------------------
  29. -- Records of acl_user
  30. -- ----------------------------
  31. INSERT INTO `acl_user` VALUES ( NULL,'adminstrator', '123456aa', '', '', '', '', null, '2017-04-14 10:51:45');
  32.  
  33. SET FOREIGN_KEY_CHECKS=0;
  34.  
  35. -- ----------------------------
  36. -- Table structure for invoice_userinfo
  37. -- ----------------------------
  38. DROP TABLE IF EXISTS `userinfo`;
  39. CREATE TABLE `userinfo` (
  40. `id` int(11) NOT NULL AUTO_INCREMENT,
  41. `usrname` varchar(15) COLLATE utf8_general_mysql500_ci NOT NULL,
  42. PRIMARY KEY (`id`)
  43. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_mysql500_ci;
  44.  
  45. -- ----------------------------
  46. -- Records of invoice_userinfo
  47. -- ----------------------------
  48. DROP TRIGGER IF EXISTS `InsertUser`;
  49. DELIMITER ;;
  50. CREATE TRIGGER `InsertUser` BEFORE INSERT ON `userinfo` FOR EACH ROW Begin
  51. SET session auto_increment_offset=2;
  52. SET session auto_increment_increment=2;
  53. end
  54. ;;
  55. DELIMITER ;

MYSQL,触发器,实现两个表共用ID不重复的更多相关文章

  1. 【转】mysql 触发器实现两个表的数据同步

    mysql通过触发器实现两个表的同步 目前,在本地测试成功. 假设本地的两个数据库a和b,a下有表table1(id, val) b下有表table2(id, val) 假设希望当table1中数据更 ...

  2. mysql高效获取两张表共同字段的交集数据

    例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher ...

  3. MySQL Innodb的两种表空间方式

    要说表空间,MySQL的表空间管理远远说不上完善.换句话说,事实上MySQL根本没有真正意义上的表空间管理.MySQL的Innodb包含两种表空间文件模式,默认的共享表空间和每个表分离的独立表空间.只 ...

  4. MySql 触发器同步备份数据表记录

    添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE /*!50017 DEFINER = 'root'@'%' */ TRIGGER `InsertOPM_Al ...

  5. 【mybatis】mysql级联更新两个表或多张表的数据

    例如 info表和relation表有关联,现在要在一个sql语句中同时级联更新两张表的数据 update security_code_info info LEFT JOIN security_cod ...

  6. Mysql训练:两个表中使用 Select 语句会导致产生 笛卡尔乘积 ,两个表的前后顺序决定查询之后的表顺序

    力扣:超过经理收入的员工 Employee 表包含所有员工,他们的经理也属于员工.每个员工都有一个 Id,此外还有一列对应员工的经理的 Id. +----+-------+--------+----- ...

  7. mysql如何让两个字段数据都不能重复?

    目录 场景 任务(需求) 行动(解决方案) 方案1:从代码层面解决(正确方案) 方案2:设置成两个唯一索引(正确方案) 方案3:删掉中间表,把从表的主键作为主表的外键,并将外键设置成唯一索引(正确方案 ...

  8. mysql触发器应用和创建表错误代码: 1118 Row size too large. 解决

    1.针对数据库查询问题的方便,可以建立重要表的log备份记录表,在主表的添加,修改,删除添加触发器,修改触发器增加触发字段的点,限制条件. 数据库log表查问题比从线上多台服务器上下载日志文件相对方便 ...

  9. mysql 修改已存在的表增加ID属性为auto_increment自动增长

    今天有需要将已经存在表设置自动增长属性 具体如下 alter table customers change id id int not null auto_increment primary key; ...

随机推荐

  1. Ubuntu 安装 Nginx 实现反向代理

    安装Nginx依赖库(ubuntu平台) 最近域名通过了备案, 想着应用总不能带着端口号访问吧, 于是在网上踩了很多坑, 终于找到了一步直达的方法,起码这一次很顺利的实现了 安装gcc g++的依赖库 ...

  2. echo 0000

    一个奇怪的问题,正常状态下如果sql插入失败,则输出0000,代码如下: $stmt=$db->prepare("insert into message(user,title,cont ...

  3. linux命令读取文件中特定行

    1.如果你只想看文件的前5行,可以使用head命令, 如: head -5 /etc/passwd 2.如果你想查看文件的后10行,可以使用tail命令, 如: tail -10 /etc/passw ...

  4. 【转】GPS基线解算模式

    GPS基线向量是利用2台或2台以上GPS接 收机所采集的同步观测数据形成的差分观测值,通过参数估计得方法所计算出的两两接收机间的三维坐标差.与常规地面测量中所测定的基线边长不同,基线向量是 既具有长度 ...

  5. GitHub For Beginners: Commit, Push And Go

    In Part 1 of this two-part GitHub tutorial, we examined the main uses for GitHub and bega5n the proc ...

  6. 系统uid在1-499的原因

    1.因为是保留给系统使用的UID,为了与用户设置的账户区分,防止冲突. 2.并没有其他特别的意义, 3.也叫作虚拟用户,除了0之外,所有的UID在使用上并没有任何区别. 4.linux中文件和程序都要 ...

  7. [TCP/IP]TCP连接的建立和终止

    TCP 是支持全双工通信的传输层协议,为了开发出更好的网络通信应用,清楚了解其中的交互过程是非常必要的. 下面用比较直白的话来描述&理解一下这个过程: TCP 连接建立:三次握手 服务器依次调 ...

  8. jQuery的属性,事件及操作

    1.属性操作 1.1 基本属性操作 $("img").attr("src") 返回文档中所有图像的src属性值 $("img").attr( ...

  9. python字符串常用的方法解析

    这是本人在学习python过程中总结的一些关于字符串的常用的方法. 文中引用了python3.5版本内置的帮助文档,大致进行翻译,并添加了几个小实验. isalnum S.isalnum() -> ...

  10. ABP官方文档翻译 8.1 通知系统

    通知系统 介绍 发送模型 通知类型 通知数据 通知严重性 关于通知持久化 订阅通知 发布通知 用户通知管理 实时通知 客户端 通知存储 通知定义 介绍 在系统中通知用来基于特定的事件告知用户.ABP提 ...