【发布时间】:2013-12-01 00:32:24
【问题描述】:
我正在研究我自己的数据库,在休息日只通过研究和谷歌的东西尽可能多地学习! 我正在做一张简单的桌子,但是几乎没有疑问。 我真的很感激任何帮助!
我确实尝试使用VARCHAR 而不是INT 从表单中获取reservation_code,但我不能在其上使用AUTO_INCREMET。我得到错误!预订代码应如下所示:123AB。我该怎么办?
CREATE TABLE flight
(
reservation_code VARCHAR(5) NOT NULL AUTO_INCREMENT,
flying_from VARCHAR(20) NOT NULL,
flying_to VARCHAR(20) NOT NULL,
PRIMARY KEY (reservation_code)
);
CREATE TABLE passenger
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
last_name VARCHAR(20) NOT NULL,
sex VARCHAR(1) NOT NULL,
PRIMARY KEY (id),
FOREING KEY (reservation_code) REFERENCES flight(reservation_code),
FOREING KEY (flight_date) REFERENCES flight_detail(flight_date),
FOREING KEY (bank_card) REFERENCES passenger_details(bank_card)
);
CREATE TABLE passenger_details
(
bank_card INT NOT NULL AUTO_INCREMENT,
email VARCHAR(20) NOT NULL,
mobile INT NOT NULL,
PRIMARY KEY (bank_card)
);
CREATE TABLE flight_detail
(
flight_date DATE NOT NULL AUTO_INCREMENT,
PRIMARY KEY (flight_date)
);
【问题讨论】:
-
首先请指出(在标签中)你正在使用什么数据库(在我看来像 MySQL)。第二 - 你如何想象 varchar 的自动增量?逻辑是什么?
-
当然,它的mysql!因此,在 html 表单上,有一个字段文本(预订代码),用户将在其中输入!这个预订代码是从另一个系统(另一个公司)生成的,这个代码会一直增加!例如:001AB 然后 002AB, 003AB 直到可能性结束!
-
如果代码是在另一家公司的另一个系统上生成的,为什么你需要增加它?它是由另一家公司生成的;你应该只是存储它。