我遇到了这种情况。我想插入一个新的行到表中有一个外键约束到另一个表。当我插入一个新的行时,我有从用户输入中获取的新值,除了要从父表中获取的外键列。而外键是父表中的auto_increment主键。这里是一个最小化的模式来说明,只显示相关的列。Mysql:在子表中插入一个新行,除了从父表获得的外键列以外的新值
CREATE TABLE CUSTOMER (
CUSTOMER_CODE INTEGER NOT NULL AUTO_INCREMENT,
FIRST_NAME VARCHAR (20) NOT NULL,
EMAIL VARCHAR (50) UNIQUE NOT NULL,
.
.
.
PRIMARY KEY (CUSTOMER_CODE)
);
CREATE TABLE BOOKING (
BOOKING_CODE INTEGER NOT NULL AUTO_INCREMENT,
CUSTOMER_CODE INTEGER NOT NULL,
BOOKING_DATE DATE NOT NULL,
.
.
.
PRIMARY KEY (RESERVATION_CODE),
CONSTRAINT BOOKING_CUSTOMER_FK FOREIGN KEY (CUSTOMER_CODE) REFERENCES CUSTOMER
(CUSTOMER_CODE)
);
我想知道(如booking_date
)insert语句,将基于该系统的列的其余部分的用户交互与生成的值送入预订表中的新行,但获得来自该customer_code
客户表与where email=
子句与从用户输入获得的电子邮件。
在更广泛的上下文中,您的应用程序会有一些登录设施,您可能会要求他提供登录凭据。只需将这些凭据保存在会话中即可。之后,你可以查询数据库的用户身份的xyz独特的电子邮件。现在你拥有所有的价值。继续吧。插入记录。 – ankurtr
@ ankur.trapasiya这就是我要求的...插入语句 – Obby
的语法插入到预定值(....,12,....)。这里是来自会话的客户ID。 – ankurtr