2

primary key(auto-increment)で始まるを作成したいA001000001。ここでA001は一定であり、000001反復されます。

このような行が必要です:

ここに画像の説明を入力してください

SQLクエリを使用してそれを行うにはどうすればよいですか?

4

3 に答える 3

9

SQL Serverの場合(使用しているRDBMSを明確に指定していません)、私の提案は次のようになります。

  • テーブルに列を追加しINT IDENTITYます-率直に言って、その列を主キーにします
  • この「プレフィックス」を実行する計算列をテーブルに追加します

何かのようなもの:

CREATE TABLE dbo.YourTable
( ID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
  EmpID AS 'A001' + RIGHT('0000000' + CAST(ID AS VARCHAR(10)), 7) PERSISTED
)

このように、行を挿入すると、IDgetsが自動的に設定され、、、、....などのEmpID値にも自動的に設定されます。A0010000001A0010000002

列に主キーを配置する場合は、作成時に仕様EmpIDを含める必要があります。NOT NULL

CREATE TABLE dbo.YourTable
( ID INT IDENTITY(1,1),
  EmpID AS 'A001' + RIGHT('0000000' + CAST(ID AS VARCHAR(10)), 7) PERSISTED NOT NULL
)

次に、その列に主キー制約を設定できます。

ALTER TABLE dbo.YourTable
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (EmpID)
于 2012-08-28T04:59:46.657 に答える
0

BEFORE INSERTトリガーを作成し、MAXid値を確認してインクリメントし、プレフィックスを追加してから挿入することができます。

于 2012-08-28T06:45:19.807 に答える
-2

思ったよりずっと簡単です;)

CREATE TABLE bob(id MEDIUMINT NOT NULL AUTO_INCREMENT、foo CHAR(30)NOT NULL、PRIMARY KEY(id))ENGINE = MyISAM;

于 2013-01-08T02:14:07.433 に答える