0

晚上好我有关于插入查询的问题如果不存在我已经在另一个查询中做了它并且它工作但现在我有一个类java服务的数组所以我想测试id:VLAN因为我每次都执行并且我想要如果它已经存在于表 sql 中,则不会插入很多次

这是我的查询,但他们给了我一个错误

for(Service srv:service){
        srvDataLst.add(srv.getvlan());

PreparedStatement pst=conn.prepareStatement(
        "INSERT INTO tout (VLAN,client,JR,vrf,address) "
        + "VALUES(?,?,?,?,?) SELECT DISTINCT "
        + "'"+srv.getvlan()+"' FROM dual WHERE NOT EXISTS("
        + "SELECT * FROM tout WHERE 'VLAN'='"+srv.getvlan()+"') ");
        pst.setInt(1,srv.getvlan());    
        pst.setString(2,convertNullToEmptyString(srv.getdesc()));
    pst.setString(3,convertNullToEmptyString(srv.getjr()));
    pst.setString(4,convertNullToEmptyString(srv.getvrf()));
    pst.setString(5,convertNullToEmptyString(srv.getaddress()));
    pst.executeUpdate();

谢谢你的帮助

错误是:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an 
error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 
'SELECT DISTINCT '20' FROM dual WHERE NOT EXISTS(SELECT * FROM tout 
WHERE 'VLAN'=' at line 1
4

1 回答 1

0

它是insert into ... values(...)or insert into ... select ...,您不能在同一语句中同时使用两者。

于 2013-06-24T15:01:51.540 回答