我们如何将PostgreSQL中的序列迁移到Mysql

时间:2017-01-06 05:27:42

标签: mysql database postgresql

所有

我正在尝试从PostgreSQL DB迁移到MySql DB。我在某些表中使用了序列来获取除主键之外的自动增量列。如何创建自动增量列,它是Mysql DB中的主键。

我在PostgreSQL中列出了一个示例表。

CREATE TABLE bills
(
      id serial NOT NULL,
      billname character varying(255) NOT NULL,
      invoiceid character varying(255) NOT NULL DEFAULT nextval('bill_invoiceid_seq'::regclass),
      CONSTRAINT combine_campaigns_pkey PRIMARY KEY (id)
)

在示例中,“id”是主键,发票ID不是键,而是获得自动增量

2 个答案:

答案 0 :(得分:0)

MySQL int auto_increment主键应该与postgreSQL serial 非常相似(不需要是主键)

如果你想保留一些使用过的序列,可以在MySQL auto_increment字段中插入一个值(例如3000),之后任何新记录都会从这个值增加,即3001以后:

enter image description here

答案 1 :(得分:-1)

mysql中SERIAL列的等效项是AUTO_INCREMENT。按如下方式定义主键:

CREATE TABLE my_table(
   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ...
)

 CREATE TABLE my_table(
   id int NOT NULL AUTO_INCREMENT ,
   ...
   PRIMARY KEY(id)
)

请注意,在mysql中,每个表只能有一个AUTO_INCREMENT。另外值得一提的是,您正在从功能丰富且更接近标准合规性的RDBS转向功能较少且合规性较低的RDBS。