gpt4 book ai didi

sql - 创建具有自动增量列的表?

转载 作者:行者123 更新时间:2023-12-05 06:32:33 28 4
gpt4 key购买 nike

Racket的sql模块提供create-table作为 CREATE TABLE sql 语句的抽象。

我应该如何使用 AUTO INCREMENT 提供列(即 id)的规范?

当我尝试

(create-table numbers
#:columns [n integer #:not-null #:auto-increment] [t text]
#:constraints (primary-key n))

然后显示错误:

create-table: unexpected term
parsing context:
while parsing ColumnDef
while parsing CreateTableInner in: #:auto-increment

是否可以在 create-table 中指定自动递增列?

最佳答案

据我所知,sql 包中的create-table 不处理自动递增。而是考虑直接使用 query-exec。这是 Rosetta 代码的一个片段。

#lang at-exp racket

(require db)
(define postal (sqlite3-connect #:database "/tmp/postal.db" #:mode 'create))

(define (add! name street city state zip)
(query-exec postal
@~a{INSERT INTO addresses (name, street, city, state, zip)
VALUES (?, ?, ?, ?, ?)}
name street city state zip))

(unless (table-exists? postal "addresses")
(query-exec postal
@~a{CREATE TABLE addresses(
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
street TEXT NOT NULL,
city TEXT NOT NULL,
state TEXT NOT NULL,
zip TEXT NOT NULL)}))

在这里查看更多信息:https://rosettacode.org/wiki/Table_creation/Postal_addresses#Racket

关于sql - 创建具有自动增量列的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191340/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com