Насколько я знаю, create-table
в пакете sql
не обрабатывает auto-increment
.
Вместо этого рассмотрите возможность использования query-exec
напрямую. Вот фрагмент кода Розетты.
#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