当我使用下面的命令在SQLite3中创建我的表时,它不会自动递增ID,也不会使USERNAME成为主键,因为我可以用相同的USERNAME输入多个用户,并且输入时不会出现问题。你知道吗
命令:
CREATE TABLE 'users' (
'id' INTEGER AUTO INCREMENT,
'username' TEXT NOT NULL,
'hash' TEXT,
PRIMARY KEY ('id', 'username')
);
下面是一个控制台的输出,显示它正在做什么,您可以告诉它让我输入用户名cat两次,而不是根据auto increment为id赋值:
sqlite> CREATE TABLE 'users' ('id' INTEGER AUTO INCREMENT, 'username' TEXT NOT NULL, 'hash' TEXT, PRIMARY KEY ('id', 'username'));
sqlite> insert into users (username, hash) values ('cat', 'dog2');
sqlite> insert into users (username, hash) values ('cat', 'dog2');
sqlite> select * from users;
id username hash
---------- ---------- ----------
cat dog2
cat dog2
是
AUTOINCREMENT
,不是AUTO INCREMENT
。另外,如果SQLite表中的字段具有AUTOINCREMENT
属性,那么它也应该是PRIMARY KEY
。你知道吗不能将具有
AUTOINCREMENT
属性的字段用作复合键的一部分。你知道吗相关问题 更多 >
编程相关推荐