如何在sqlite3中创建MUL密钥?
我试图为一个已经存在的使用MySQL的python应用程序提供sqlite3支持。MySQL中有一个查询,我想在sqlite3中转换它,以创建一个表,该表将其两列作为MUL键 在MySQL中,我们可以这样做:如何在sqlite3中创建MUL密钥?,sqlite,key,Sqlite,Key,我试图为一个已经存在的使用MySQL的python应用程序提供sqlite3支持。MySQL中有一个查询,我想在sqlite3中转换它,以创建一个表,该表将其两列作为MUL键 在MySQL中,我们可以这样做: CREATE TABLE messages ( id BIGINT(16) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, group_id INTEGER, feat VARCHAR(36), KEY \`
CREATE TABLE messages (
id BIGINT(16) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
group_id INTEGER,
feat VARCHAR(36),
KEY \`field\` (\`group_id\`),
KEY \`feature\` (\`feat\`)
)
如何在sqlite3中编写相同的查询?
如何在sqlite3中创建多键“MUL”?我相信有3种方法。如果MUL应该是唯一的,则有2个选项;如果不需要唯一性,则有另一个选项 e、 g:-
/* Unique constraint and therefore an auto-created index */
CREATE TABLE messages1 (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
group_id INTEGER, feat TEXT,
UNIQUE(group_id, feat)
);
/* Unique constraint not required and therefore just an index */
CREATE TABLE messages2 (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
group_id INTEGER, feat TEXT
);
CREATE INDEX messages_idx01 ON messages2 (group_id,feat);
/* A specifically named UNIQUE index */
CREATE TABLE messages3 (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
group_id INTEGER, feat TEXT
);
CREATE UNIQUE INDEX messages_idx02 ON messages3 (group_id,feat);
- 注意:已使用派生列类型
- 也就是说,列类型(类型关联)在SQLite中有很大的不同,它们更灵活,并且只指示存储的数据类型。看
- e、 g.BIGINT(16)的派生列类型为INTEGER,因此使用了INTEGER
- 另外请注意,已经使用了AUTOINCREMENT,但是您应该阅读,因为它很可能不是必需的,并且它会导致效率低下/管理费用增加李>
- 我相信你有三种方法。如果MUL应该是唯一的,则有2个选项;如果不需要唯一性,则有另一个选项
e、 g:-
/* Unique constraint and therefore an auto-created index */
CREATE TABLE messages1 (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
group_id INTEGER, feat TEXT,
UNIQUE(group_id, feat)
);
/* Unique constraint not required and therefore just an index */
CREATE TABLE messages2 (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
group_id INTEGER, feat TEXT
);
CREATE INDEX messages_idx01 ON messages2 (group_id,feat);
/* A specifically named UNIQUE index */
CREATE TABLE messages3 (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
group_id INTEGER, feat TEXT
);
CREATE UNIQUE INDEX messages_idx02 ON messages3 (group_id,feat);
- 注意:已使用派生列类型
- 也就是说,列类型(类型关联)在SQLite中有很大的不同,它们更灵活,并且只指示存储的数据类型。看
- e、 g.BIGINT(16)的派生列类型为INTEGER,因此使用了INTEGER
- 另外请注意,已经使用了AUTOINCREMENT,但是您应该阅读,因为它很可能不是必需的,并且它会导致效率低下/管理费用增加李>