Mysql 显示空值的外键
我试图显示从另一个表中提取的外键值。 我使用的代码: 第一个表的代码:Mysql 显示空值的外键,mysql,Mysql,我试图显示从另一个表中提取的外键值。 我使用的代码: 第一个表的代码: CREATE TABLE trip ( tripID INT(10) PRIMARY KEY, startTime TIME, endTime TIME, tripDate DATE, price VARCHAR(5), databaseID INT(10), FOREIGN KEY (databaseID) REFERE
CREATE TABLE trip (
tripID INT(10) PRIMARY KEY,
startTime TIME,
endTime TIME,
tripDate DATE,
price VARCHAR(5),
databaseID INT(10),
FOREIGN KEY (databaseID)
REFERENCES databasestorage(databaseID)
);
第二个表的代码:
CREATE TABLE databasestorage (
databaseID INT(10) PRIMARY KEY,
location VARCHAR(40)
);
将值插入两个表后,在trip
表中,databaseID
仍然显示为null
,而所有其他列都是正确的。如何使我的trip
表中的databaseID
显示databasestorage
表中databaseID
的值?试试这个;)
将自动增量
添加到表定义中:
首先:
CREATE TABLE databasestorage (
databaseID INT(10) PRIMARY KEY auto_increment,
location VARCHAR(40)
);
第二:
CREATE TABLE trip (
tripID INT(10) PRIMARY KEY auto_increment,
startTime TIME,
endTime TIME,
tripDate DATE,
price VARCHAR(5),
databaseID INT(10),
FOREIGN KEY (databaseID)
REFERENCES databasestorage(databaseID)
);
添加(插入查询)
在这个查询中,不需要为tripID
传递值,这是一个自动增量
字段,我认为您正在将databaseID
值传递给tripID
。因此,插入databasestorage.databaseID
后得到的值应传递到trip.databaseID
所以最后的问题是:
INSERT INTO trip(startTime, endTime, tripDate, price, databaseID) VALUES('20:20:00', '20:40:00', '2016-10-22', '$5.25', 101);
由于
trip.databaseID
是INT
字段,因此无需添加引号('
) 在将数据插入trip
表时,您需要传递databasestorage
表的主键,对吗
INSERT INTO databasestorage(databaseID, location) VALUES('1021', 'Caulfield')
对于行程表,您需要显式传递行程表中databaseID
列的值,外键不会自动插入
---------v
INSERT INTO trip(tripID, startTime, endTime, tripDate, price,databaseID)
VALUES('101', '20:20:00', '20:40:00', '2016-10-22', '$5.25','1021')
-----^
@JaydipJ I首先插入
数据库存储
表,然后插入trip
表第二次添加插入脚本插入数据库存储(databaseID,location)值('1021','Caulfield')
对于第一个表,插入trip(tripID,startTime,endTime,tripDate,price)值('101','20:20:00','20:40:00','2016-10-22','$5.25')
对于第二个可能的重复,我尝试运行第一个代码,但返回错误代码:1005,无法创建表's345.trip'(错误号:150)@DarioOngsono更改了表创建的顺序;首先是主键字段表,然后是使用主键作为外键的表;我刚刚尝试过,它在表创建方面很有效,但在我先输入数据库存储
表,然后再输入trip
表之后,它仍然显示为null
。@DarioOngsono你能吗请共享trip
表的插入代码?`插入trip(tripID、startTime、endTime、tripDate、price)值('101'、'20:20:00'、'20:40:00'、'2016-10-22'、'$5.25')`您是对的,它不再显示为null
,我们必须自己手动更新外键吗?
---------v
INSERT INTO trip(tripID, startTime, endTime, tripDate, price,databaseID)
VALUES('101', '20:20:00', '20:40:00', '2016-10-22', '$5.25','1021')
-----^