在 oracle 中, sequence 提供多表多字段可共用一个不重复值。 Mysql 中存在自增列,基本可以满足 PK 的要求。但自增列存在限制:
a. 只能用于表中的一个字段,一张不能同时存在两个以上的自增列 ;
b. 自增列必须被定义为 key ( PK 或 FK ) ;
c. 自增列不能被多个表共用 ;
d. 当 insert 语句不包括自增字段或将其值设置为 NULL 时,该值会自动填上。
在不要求字段顺序递增的情况下,可以在 Mysql 中实现序列:
Sql code 5-1:
在 SQL 中使用序列:
Sql code 5-2:
在存储过程中使用序列(以 sql code 1-1 中创建的 testproc 表为例),此存储过程返回插入后的 ID ,如果插入失败,则返回 -1 :
sql code 5-3: