sqlite不自动递增

2024-04-19 04:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用下面的命令在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     

Tags: text命令idautosqlitecreatetableusername
1条回答
网友
1楼 · 发布于 2024-04-19 04:41:11

AUTOINCREMENT,不是AUTO INCREMENT。另外,如果SQLite表中的字段具有AUTOINCREMENT属性,那么它也应该是PRIMARY KEY。你知道吗

CREATE TABLE 'users' (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL, hash TEXT);

不能将具有AUTOINCREMENT属性的字段用作复合键的一部分。你知道吗

相关问题 更多 >