重複を許可したい場合は、それを として宣言しないでくださいPRIMARY KEY
(また、UNIQUE
制約も設定しません)。
その場合、 MySQLではAUTO_INCREMENT
重複が許可されます。単純なインデックスを追加するだけです。
CREATE TABLE test
( increment_number INTEGER NOT NULL AUTO_INCREMENT
, INDEX inc_index (increment_number)
) ;
INSERT INTO test
VALUES (1),(2),(3),(4),(4);
SQL-Fiddle でのテスト: test-1
INSERT INTO test
VALUES
(NULL);
SELECT *
FROM test ;
結果:
increment_number
----------------
1
2
3
4
4
5
SQL-Serverでは、IDENTITY_INSERT
設定ON
を切り替えて、OFF
同様の動作をさせる必要があります。
CREATE TABLE test
( increment_number INT IDENTITY(1,1) NOT NULL
, name varchar(20) NOT NULL
) ;
SET IDENTITY_INSERT test ON ;
INSERT INTO test (increment_number, name)
VALUES
(1, 'Alex'),
(2, 'Bill'),
(3, 'Cathy'),
(4, 'Diana'),
(4, 'Dean');
そしてtest-2 :
SET IDENTITY_INSERT test OFF ;
INSERT INTO test (name)
VALUES
('Elaine') ;
SELECT *
FROM test ;
結果:
increment_number | name
---------------------------
1 Alex
2 Bill
3 Cathy
4 Diana
4 Dean
5 Elaine