SQL: добавить новый столбец первичного ключа в таблицу базы данных - PullRequest
0 голосов
/ 18 октября 2018

У меня есть таблица базы данных с несколькими столбцами, некоторые из которых использовались для формирования первичного ключа вместе.Теперь модель изменилась, и появился один столбец первичного ключа, который называется id.

Когда я изменяю таблицу и добавляю столбец, столбец заполняется в каждой строке значением по умолчанию, 0 или NULL, так что его нельзя использовать в качестве кандидата на новый первичный ключ.Чтобы достичь этого, я должен иметь различное (числовое) значение для 'id' в каждой строке.Как мне этого добиться, желательно как можно более универсально (MySQL, Oracle, SQL Server).

Ответы [ 2 ]

0 голосов
/ 18 октября 2018
CREATE TABLE Persons (
    ID int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
); 

Может быть, это будет полезно.MS SQL Server использует ключевое слово IDENTITY для выполнения функции автоинкремента.

В приведенном выше примере начальное значение для IDENTITY равно 1, и оно будет увеличиваться на 1 для каждой новой записи.

Совет: Чтобы указать, чтоСтолбец «ID» должен начинаться со значения 10 и увеличиваться на 5, изменить его на IDENTITY(10,5).

Чтобы вставить новую запись в таблицу «Персоны», нам НЕ нужно указывать значение для «ID »(уникальное значение будет добавлено автоматически):

0 голосов
/ 18 октября 2018

Вот пример того, как добавить столбец идентификаторов, который заполняется как первичный ключ.

create table #t (vals varchar(100))

insert into #t
values('a'),('b'),('c')

alter table #t
add ID int identity primary key

select * from #t

Результаты:

vals    ID
a   1
b   2
c   3

Это ответ SQL Server.Я не знаю, как работают другие базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...