2000-12-28 02:56:38 +01:00
|
|
|
#
|
|
|
|
# Test of auto_increment; The test for BDB tables is in bdb.test
|
|
|
|
#
|
2003-01-06 00:48:59 +01:00
|
|
|
--disable_warnings
|
2001-10-08 03:58:07 +02:00
|
|
|
drop table if exists t1;
|
2003-01-06 00:48:59 +01:00
|
|
|
--enable_warnings
|
|
|
|
|
2000-12-28 02:56:38 +01:00
|
|
|
create table t1 (a int not null auto_increment,b int, primary key (a)) type=myisam auto_increment=3;
|
|
|
|
insert into t1 values (1,1),(NULL,3),(NULL,4);
|
|
|
|
delete from t1 where a=4;
|
|
|
|
insert into t1 values (NULL,5),(NULL,6);
|
|
|
|
select * from t1;
|
|
|
|
delete from t1 where a=6;
|
|
|
|
#show table status like "t1";
|
|
|
|
replace t1 values (3,1);
|
|
|
|
ALTER TABLE t1 add c int;
|
|
|
|
replace t1 values (3,3,3);
|
|
|
|
insert into t1 values (NULL,7,7);
|
|
|
|
update t1 set a=8,b=b+1,c=c+1 where a=7;
|
|
|
|
insert into t1 values (NULL,9,9);
|
|
|
|
select * from t1;
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
create table t1 (
|
|
|
|
skey tinyint unsigned NOT NULL auto_increment PRIMARY KEY,
|
|
|
|
sval char(20)
|
|
|
|
);
|
|
|
|
insert into t1 values (NULL, "hello");
|
|
|
|
insert into t1 values (NULL, "hey");
|
|
|
|
select * from t1;
|
|
|
|
select _rowid,t1._rowid,skey,sval from t1;
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
#
|
|
|
|
# Test auto_increment on sub key
|
|
|
|
#
|
|
|
|
create table t1 (a char(10) not null, b int not null auto_increment, primary key(a,b));
|
|
|
|
insert into t1 values ("a",1),("b",2),("a",2),("c",1);
|
|
|
|
insert into t1 values ("a",NULL),("b",NULL),("c",NULL),("e",NULL);
|
|
|
|
insert into t1 (a) values ("a"),("b"),("c"),("d");
|
|
|
|
insert into t1 (a) values ('k'),('d');
|
|
|
|
insert into t1 (a) values ("a");
|
|
|
|
insert into t1 values ("d",last_insert_id());
|
|
|
|
select * from t1;
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
create table t1 (ordid int(8) not null auto_increment, ord varchar(50) not null, primary key (ordid), index(ord,ordid));
|
|
|
|
insert into t1 (ordid,ord) values (NULL,'sdj'),(NULL,'sdj');
|
|
|
|
select * from t1;
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
create table t1 (ordid int(8) not null auto_increment, ord varchar(50) not null, primary key (ord,ordid));
|
|
|
|
insert into t1 values (NULL,'sdj'),(NULL,'sdj'),(NULL,"abc"),(NULL,'abc'),(NULL,'zzz'),(NULL,'sdj'),(NULL,'abc');
|
|
|
|
select * from t1;
|
|
|
|
drop table t1;
|
2001-07-16 02:04:30 +02:00
|
|
|
|
2003-03-02 01:48:57 +01:00
|
|
|
create table t1 (sid char(5), id int(2) NOT NULL auto_increment, key(sid, id));
|
|
|
|
create table t2 (sid char(20), id int(2));
|
|
|
|
insert into t2 values ('skr',NULL),('skr',NULL),('test',NULL);
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
select * from t1;
|
|
|
|
drop table t1,t2;
|
|
|
|
|
2001-07-16 02:04:30 +02:00
|
|
|
#
|
|
|
|
# Test of auto_increment columns when they are set to 0
|
|
|
|
#
|
|
|
|
|
|
|
|
create table t1 (a int not null primary key auto_increment);
|
|
|
|
insert into t1 values (0);
|
|
|
|
update t1 set a=0;
|
|
|
|
select * from t1;
|
|
|
|
check table t1;
|
|
|
|
drop table t1;
|
2003-03-02 01:48:57 +01:00
|
|
|
|
2003-03-31 21:14:26 +02:00
|
|
|
#
|
|
|
|
# last_insert_id() madness
|
|
|
|
#
|
|
|
|
create table t1 (i tinyint unsigned not null auto_increment primary key);
|
|
|
|
insert into t1 set i = 254;
|
|
|
|
insert into t1 set i = null;
|
|
|
|
select last_insert_id();
|
|
|
|
--error 1062
|
2003-06-30 12:28:36 +02:00
|
|
|
insert into t1 set i = 254;
|
|
|
|
select last_insert_id();
|
|
|
|
--error 1062
|
2003-03-31 21:14:26 +02:00
|
|
|
insert into t1 set i = null;
|
|
|
|
select last_insert_id();
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
create table t1 (i tinyint unsigned not null auto_increment, key (i));
|
|
|
|
insert into t1 set i = 254;
|
|
|
|
insert into t1 set i = null;
|
|
|
|
select last_insert_id();
|
|
|
|
insert into t1 set i = null;
|
|
|
|
select last_insert_id();
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
create table t1 (i tinyint unsigned not null auto_increment primary key, b int, unique (b));
|
|
|
|
insert into t1 values (NULL, 10);
|
|
|
|
select last_insert_id();
|
|
|
|
insert into t1 values (NULL, 15);
|
|
|
|
select last_insert_id();
|
|
|
|
--error 1062
|
|
|
|
insert into t1 values (NULL, 10);
|
|
|
|
select last_insert_id();
|
2003-06-30 12:28:36 +02:00
|
|
|
|
2003-03-31 21:14:26 +02:00
|
|
|
drop table t1;
|
|
|
|
|