Как сделать идентификатор филиала зависимым от выбранной ветви?

#sql #sql-server #database

Вопрос:

Я пытаюсь создать пользовательский первичный ключ, который увеличивается и зависит от введенной ветви. Например, если я введу «МАЙАМИ» в качестве филиала, идентификатор отобразится как MI0001, а если я введу «КАЛИФОРНИЯ», он отобразит CA0001 и так далее. Как мне это сделать? Вот что у меня есть на данный момент.

 CREATE TABLE dbo.tblCompany  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,  CompanyID AS 'MI-'   RIGHT('00000000'   CAST(ID AS VARCHAR(3)), 3) PERSISTED,  FirstName VARCHAR(30),  LastName VARCHAR(30),  Branch VARCHAR(100) NOT NULL  CHECK(Branch IN('MIAMI', 'CALIFORNIA', 'NEW YORK', 'SEATTLE'))  )  

Комментарии:

1. Вы уверены, что используете MySQL? dbo обычно это происходит с SQL-сервером.

2. В MySQL этого нет IDENTITY() .

Ответ №1:

Вам придется использовать триггер ВМЕСТО ВСТАВКИ и сканировать целевую таблицу или поддерживать отдельные объекты последовательности для каждой ветви.

Так что этого не стоит делать, и вам не следует пытаться.

Комментарии:

1. Не могли бы вы рассказать мне об этом, пожалуйста? я только начинаю SQL server, и это для школьного проекта

2. Нет. Вы должны просто использовать ИДЕНТИФИКАТОР или ПОСЛЕДОВАТЕЛЬНОСТЬ.