2012-11-08 172 views
0

你好我想更新或插入一个应用程序,但它显示我的错误。知道,如果我删除更新或查询工作查询更新或插入

UPDATE OR INSERT INTO stat_alert(`DAT`,`provider`,`CI`,`cell`,`BSC`,`cmts`,`nbr`,`TYPE`) 
    SELECT CC.DAT,CC.provider,CC.CI,CC.cell,CC.BSC,CC.cmts, CONCAT(CC.C,'C, ',MM.M ,'M') AS nbr,'C' AS TYPE FROM 
    (SELECT DAT,provider,CI,cell,BSC,cmts,COUNT(*) AS C FROM alertes_bss2 WHERE Criticity = 'C' GROUP BY cell,Criticity) AS CC, 
    (SELECT DAT,provider,CI,cell,BSC,cmts,COUNT(*) AS M FROM alertes_bss2 WHERE Criticity = 'M' GROUP BY cell,Criticity) AS MM WHERE MM.cell = CC.cell 
     UNION SELECT DAT,provider,CI,cell,BSC,cmts, CONCAT(COUNT(*) ,'C') AS nbr,'C' AS TYPE FROM alertes_bss2 WHERE Criticity = 'C' AND cell NOT IN 
     (SELECT cell FROM alertes_bss2 WHERE Criticity = 'M') GROUP BY DAT,provider,CI,cell,BSC,Criticity 
     UNION SELECT DAT,provider,CI,cell,BSC,cmts, CONCAT(COUNT(*) ,'M') AS nbr,'M' AS TYPE FROM alertes_bss2 WHERE Criticity = 'M' AND cell NOT IN 
     (SELECT cell FROM alertes_bss2 WHERE Criticity = 'C') GROUP BY DAT,provider,CI,cell,BSC,Criticity; 

我有这样的错误:

Query: UPDATE OR INSERT INTO stat_alert(`DAT`,`provider`,`CI`,`cell`,`BSC`,`cmts`,`nbr`,`TYPE`) SELECT CC.DAT,CC.provider,CC.CI,CC.cell... 

Error Code: 1064 
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 'OR INSERT INTO stat_alert(`DAT`,`provider`,`CI`,`cell`,`BSC`,`cmts`,`nbr`,`TYPE' at line 1 

Execution Time : 0 sec 
Transfer Time : 0 sec 
Total Time  : 0.003 sec 
--------------------------------------------------- 

谁可以帮我

+0

某处必须有一个[manual](http://dev.mysql.com/doc/refman/5.5/en/insert.html),描述这些语句的语法.... – GolezTrol

+1

你从哪里得到那个可怕的语法“UPDATE或INSERT INTO”? – Lion

+0

http://www.firebirdsql.org/refdocs/langrefupd25-update-or-insert.html – user1794019

回答

0

不能使用更新和插入在一起...... .........

您需要在代码中处理它,无论是需要更新数据还是插入数据。

2

也许您在寻找REPLACElink

更换作品酷似INSERT,不同之处在于,如果一个老行的 表具有相同的值PRIMARY KEY或一个UNIQUE 指数新行,旧行的新行之前删除被插入。

0

不能在Mysql.You使用UPDATE OR INSERT必须检查记录存在到数据库或not.If它存在那么UPDATE以其它方式使用INSERT