2016-05-16 6 views
-1

У меня есть существующую таблицу продукта, который уже заселен на 120 записей, и я пытался ниже SQL запроса:Существующие таблицы добавить автоматическое приращение первичного ключа - SQL

ALTER TABLE product ADD product_id 
    INT PRIMARY KEY AUTO_INCREMENT 

Но это дает мне ошибку:

Error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

+0

Вы пробовали какой запрос? – hjpotter92

+0

ALTER TABLE product ADD product_id INT PRIMARY KEY AUTO_INCREMENT; –

+0

'ALTER TABLE product ADD column product_id INT PRIMARY KEY AUTO_INCREMENT;' –

ответ

-1

В таблице может быть только одно поле автоматического приращения. Но у вас может быть рассчитанное поле, основанное на поле автоматического приращения. Или у вас может быть поле int, где вы управляете последовательностью с помощью кода переднего конца или с помощью триггера. А также вы можете использовать sequence в SQL Server.

CREATE SEQUENCE MySequence START WITH 100; 

CREATE TABLE MyTable 
(
    RealIdentity INT IDENTITY(1,1), 
    RandomCol NVARCHAR(100), 
    FakeIdentity INT DEFAULT NEXT VALUE FOR MySequence 
); 

UPDATE - MySQL Путь

Я просто заметил, что ваш вопрос TAged для MySQL. Выше ответ для MS SQL. Вот как вы будете делать то же самое в MySQL.

How do I create a sequence in MySQL?

MySQL equivalent of Oracle's SEQUENCE.NEXTVAL

0

Друг Если вы попытаетесь сделать это в MSSQL, то ваш скрипт будет это. предположит, что ваша таблица ниже

create table product 
(
name varchar(20), 
product_type varchar(20) 
) 

и предположит, что вы вошли некоторые записи в таблице после того, что вы хотите, чтобы добавить столбец, имя product_id с автоматическим приращением и первичным ключом. Затем вы используете этот скрипт, который ниже

alter table product add product_ID int primary key identity(1,1) 

Предположим, это поможет вам в полной мере.

0

Здесь работают около

  • создать простую колонку с Autoincrement
  • просмотреть таблицу и снова сделать это вновь добавленный столбец в качестве первичного ключа

Вы сделали!

:) Спасибо Гаю, который не находится в Stackoverflow

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