Pasupathy Msc Ответов: 1

Общий доступ к автоматически увеличенному первичному ключу между двумя таблицами


мне нужно разделить значение идентификатора для обеих таблиц, например
df
1
2
3
5
6
10
МФ
4
7
8
9

Что я уже пробовал:

я создал номер автоматического приращения для одной таблицы
Создать таблицу df (
id IDENTITY(1,1)
);

Создать таблицу mf (
id IDENTITY(1,1)
);

RDBurmon

таким образом, вы хотите вставить запись в первую таблицу "df" с автоинкрементным идентификатором (предположим, 1), а затем хотели бы вставить запись во вторую таблицу "mf" с аналогичным идентификатором, как в таблице "DF" (которая также равна 1)

я правильно говорю?

Pasupathy Msc

Да сэр

1 Ответов

Рейтинг:
4

OriginalGriff

Нет, ты не хочешь этого делать. Идея поля идентичности заключается в том, что оно является уникальным идентификатором строки внутри таблицы - и несколько таблиц будут иметь разные строки с разными идентификаторами.
Единственный раз, когда вы хотите или нуждаетесь в одном и том же идентификаторе строки для каждой строки в двух разных таблицах, - это когда вы плохо спроектировали свою систему, создав две таблицы там, где одна необходима. Решение этой проблемы простое: сделайте его одним столом. Если вы этого не сделаете, то многопользовательский аспект SQL Server будет кусать вас - и сильно - когда вы доберетесь до производства.
Если между двумя таблицами предполагается корреляция, то это просто: каждая таблица имеет отдельное значение идентификатора (которое не обязательно должно быть одинаковым), но одна таблица имеет столбец, который содержит отношение внешнего ключа с другой и который содержит идентификатор строки во второй таблице:

CustNames
ID      INT, IDENTITY
CName   NVARCHAR(255)

ID      Cname
1       Jones Designs
2       Smiths Instruments
3       Joes Chips

CustAddresses
ID      INT, IDENTITY
Addr    NVARCHAR(1024)
CID     INT, FOREIGN KEY to CustNames.ID

ID      Addr                            CID
1       Smiths House, Smiths Lane       2
2       JonesTown                       1
3       High Street, Potato Town, Idaho 3
Понимаете, что я имею в виду?