Java 未知列';1';在';字段列表';

Java 未知列';1';在';字段列表';,java,mysql,sql,Java,Mysql,Sql,我试图将数据插入我的停止表正在创建停止表以及路线表,但程序无法将数据插入停止表,我收到以下错误: Unknown column '1' in 'field list' 谢谢你的帮助 stt.execute("CREATE TABLE IF NOT EXISTS routes" + "(route_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, " + "route INT(11) NOT

我试图将数据插入我的停止表正在创建
停止
表以及
路线
表,但程序无法将数据插入停止表,我收到以下错误:

Unknown column '1' in 'field list'
谢谢你的帮助

    stt.execute("CREATE TABLE IF NOT EXISTS routes"
             + "(route_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, "
             + "route INT(11) NOT NULL)" );
    stt.execute("INSERT INTO routes(route) VALUES"
            + "(1),"
            + "(9)");

    stt.execute("CREATE TABLE IF NOT EXISTS stops"
            + "(stop_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, "
            + " name varchar(30) NOT NULL, "
            + " lat double(10,6) NOT NULL, "
            + " longi double(10,6)NOT NULL,"
            + "route_id INT, FOREIGN KEY fk_route_id(route_id) REFERENCES routes(route_id) )" );

    stt.execute("INSERT INTO stops(route_id, name,  lat, longi) VALUES"
            + "(`1`, 'Alex allee', '83.868937', '18.665545' ),"                     
            + "(`1`,'city street', '83.840642', '18.701246' )," 
            + "(`2`,'apple street', '83.740642', '18.761246' ),"
            + "(`2`,'wall street', '83.868256', '18.669520' )");

对于转义字符串,必须使用单引号。列或表名需要反勾选。对于数值计算,没有逃逸特征

因为您的
route\u id
值是通过将其解释为列名来转义的。删除它们,您的查询就会工作

stt.execute("INSERT INTO stops(route_id, name,  lat, longi) VALUES"
            + "(1, 'Alex allee', 83.868937, 18.665545 ),"                     
            + "(1,'city street', 83.840642, 18.701246 )," 
            + "(9,'apple street', 83.740642, 18.761246 ),"
            + "(9,'wall street', 83.868256, 18.669520 )");

对于转义字符串,必须使用单引号。列或表名需要反勾选。对于数值计算,没有逃逸特征

因为您的
route\u id
值是通过将其解释为列名来转义的。删除它们,您的查询就会工作

stt.execute("INSERT INTO stops(route_id, name,  lat, longi) VALUES"
            + "(1, 'Alex allee', 83.868937, 18.665545 ),"                     
            + "(1,'city street', 83.840642, 18.701246 )," 
            + "(9,'apple street', 83.740642, 18.761246 ),"
            + "(9,'wall street', 83.868256, 18.669520 )");

它现在可以工作了,但真的很奇怪,因为我有另一个带有外键的表,我像这样插入数据
插入到到达时间(stop\u id,weekday,arrivaltime,route)值('1','mon fri','12:25','1')
,它可以工作吗@MrAsker在这里,数值周围有单引号。这将被自动转换。因此,对于前面的错误,我刚刚从第一列中删除了单引号,它可以工作,而不是从lat和longi中删除。@MrAsker在您的原始错误中,第一个值周围没有单引号是反勾!!可以在数值周围添加单引号。但是这不是一个好的实践,因为sql解释器必须转换它。这需要时间,而且查询速度会很慢。它现在可以工作,但真的很奇怪,因为我有另一个带有外键的表,我在那里插入数据,就像这样
插入到到达时间(stop_id,weekday,arrivaltime,route)值('1','mon fri','12:25','1')
并且可以工作吗@MrAsker在这里,数值周围有单引号。这将被自动转换。因此,对于前面的错误,我刚刚从第一列中删除了单引号,它可以工作,而不是从lat和longi中删除。@MrAsker在您的原始错误中,第一个值周围没有单引号是反勾!!可以在数值周围添加单引号。但是这不是一个好的实践,因为sql解释器必须转换它。这需要时间,查询速度会很慢。