2017-01-06 3 views
1

Все,Как мы можем перенести последовательность в PostgreSQL для Mysql

Я пытаюсь перейти от PostgreSQL БД в БД MySQL. Я использовал последовательность в некоторой таблице, чтобы получить столбец автоматического увеличения, отличный от первичного ключа. Как создать столбец автоматического увеличения, который является первичным ключом в 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) 
) 

В примере, «идентификатор» является первичным ключом и счет-фактура идентификатор не является ключевым, но получать автоматическое приращение

ответ

-1

Эквивалент для SERIAL столбца в MySQL является 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, который богат функциями и ближе к стандартному соответствию, с тем, что имеет меньше возможностей и менее совместимо.

+0

спасибо за ответ, но мне нужно, чтобы получить возможность использовать автоматическое приращение, отличные от первичный ключ. Я модифицировал вопрос на примере. –

+0

Извините, но это не допускается mysql. «вы переходите от RDBS, который обладает богатыми функциями и ближе к стандартным требованиям к тому, который имеет меньше функций и менее совместим». – e4c5

+0

Есть определенные работы, которые могут работать с разной степенью надежности. Могу ли я предложить вам пометить этот ответ как правильный и задать новый вопрос о том, как создать столбец автоматического увеличения числа первичных ключей в mysql. На это уже есть немало ответов. – e4c5

0

MySQL INT auto_increment первичный ключ должен быть очень похож на PostGreSQL серийный (который не должен быть первичный ключ)

Если вы хотите зарезервировать некоторую используемую последовательность, вы можете вставить значение (например, 3000) в MySQL поле auto_increment, после того, что любая новая запись будет увеличиваться от этого значения т.е. 3001 года:

enter image description here

+0

спасибо за ваш ответ, извините, я пропустил слово («не»), что полностью изменило смысл вопроса. Я сейчас поправил. Извините за путаницу. –

+0

Ну, в MySQL только первичный ключ имеет auto_increment – SIDU

Смежные вопросы