首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >create-table带有自动增量列?

create-table带有自动增量列?
EN

Stack Overflow用户
提问于 2018-07-05 20:28:42
回答 1查看 437关注 0票数 2

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

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

当我尝试的时候

代码语言:javascript
复制
(create-table numbers
  #:columns [n integer #:not-null #:auto-increment] [t text]
  #:constraints (primary-key n))

然后它会显示错误:

代码语言:javascript
复制
create-table: unexpected term
  parsing context: 
    while parsing ColumnDef
    while parsing CreateTableInner in: #:auto-increment

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

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 23:23:57

据我所知,sql包中的create-table不处理auto-increment。相反,可以考虑直接使用query-exec。这是Rosetta Code的一个片段。

代码语言:javascript
复制
#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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51191340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档