Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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-Insert语句在只使用外键进入表时失败_Mysql_Syntax - Fatal编程技术网

MySQL-Insert语句在只使用外键进入表时失败

MySQL-Insert语句在只使用外键进入表时失败,mysql,syntax,Mysql,Syntax,因此,我的表如下所示(从“Show Create table”查询中): 我试图在这个表中输入一个新条目,如下所示: INSERT INTO stars_in_movies (907010, 834410); 我得到一个错误如下: ERROR 1064 (4200): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right

因此,我的表如下所示(从
“Show Create table”
查询中):

我试图在这个表中输入一个新条目,如下所示:

INSERT INTO stars_in_movies (907010, 834410);
我得到一个错误如下:

ERROR 1064 (4200): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to user near '907010, 834410)' at line 1
现在我知道这个错误只是一个语法错误,但是为什么我会收到这样一个简单的插入查询的错误呢?Everywhere online建议这是一条有效的语句,特别是如果这两个条目字段是来自其他两个引用表的实际ID

编辑:

好的,对于这个简单的例子,我只是缺少了
value
关键字。还有一个问题,这个查询为什么会返回相同的错误

INSERT INTO stars_in_movies
VALUES
(693109, m.id)
SELECT m.id
FROM movies m
WHERE m.title='Inception';

您似乎缺少
关键字

INSERT INTO stars_in_movies (star_id, movie_id) VALUES (907010, 834410)
                                                ^^^^^^

您似乎缺少
关键字

INSERT INTO stars_in_movies (star_id, movie_id) VALUES (907010, 834410)
                                                ^^^^^^
试试这个:

INSERT INTO stars_in_movies values (907010, 834410);
您缺少关键字

编辑:

在注释之后,您还有一个选项可以像这样插入到表中

INSERT INTO stars_in_movies 
select 907010, 834410;
编辑:

这个查询不起作用

INSERT INTO stars_in_movies
VALUES
(693109, m.id)
SELECT m.id
FROM movies m
WHERE m.title='Inception';
您需要在
值中指定特定值。在

INSERT INTO stars_in_movies
    VALUES
    (693109, m.id)
m、 未定义id,因此分析仪不知道该id。所以你得到了错误

您可能正在寻找以下内容:

INSERT INTO stars_in_movies
SELECT 693109, m.id
FROM movies m
WHERE m.title='Inception';
试试这个:

INSERT INTO stars_in_movies values (907010, 834410);
您缺少关键字

编辑:

在注释之后,您还有一个选项可以像这样插入到表中

INSERT INTO stars_in_movies 
select 907010, 834410;
编辑:

这个查询不起作用

INSERT INTO stars_in_movies
VALUES
(693109, m.id)
SELECT m.id
FROM movies m
WHERE m.title='Inception';
您需要在
值中指定特定值。在

INSERT INTO stars_in_movies
    VALUES
    (693109, m.id)
m、 未定义id,因此分析仪不知道该id。所以你得到了错误

您可能正在寻找以下内容:

INSERT INTO stars_in_movies
SELECT 693109, m.id
FROM movies m
WHERE m.title='Inception';

好吧,这是难以置信的琐碎,那么为什么这个问题表明我可以不使用VALUES关键字就插入?@LeoVannini:-如果我错了,请纠正我,但这与此有什么联系?@rahultripati我道歉,错了@LeoVannini:-是的,这是不同的。如果您使用select语句来添加值,那么您不必添加values关键字。@LeoVannini:-更新了我的回答好的,这是非常琐碎的,那么,这个问题为什么表明我可以不使用VALUES关键字就进行插入?@LeoVannini:-如果我错了,请纠正我,但这与此有什么联系?@rahultripati我道歉,错了@LeoVannini:-是的,这是不同的。如果使用select语句添加值,则不必添加values关键字。@LeoVannini:-更新了我的回答是!非常感谢rahul,最后一个例子非常完美!再次非常感谢你,特别是对为什么它不起作用的解释。是的!非常感谢rahul,最后一个例子非常完美!再次非常感谢您,特别是对于它为什么不起作用的解释。Re:EDIT,您不能合并
INSERT。。。值
插入。。。选择
Re:EDIT,您不能合并
INSERT。。。值
插入。。。选择