Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 显示空值的外键_Mysql - Fatal编程技术网

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')
                                                         -----^