#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. Нет. Вы должны просто использовать ИДЕНТИФИКАТОР или ПОСЛЕДОВАТЕЛЬНОСТЬ.