zoukankan      html  css  js  c++  java
  • 在imformix数据库中遇到的坑

    今天,给系统改点数据,要从另一个表抓取数据更新到目标表,

    一般插入语句格式如下:

    Insert into Table2(field1,field2,...) select value1,value2,... from Table1 where ...

    但在imformix却不是这样

    竟然语法错误?

    好吧,改一下呗

    看起来好像也不行,

    接着,就度娘了一下,有写人分享的是

    后面要再加一对括号,想下面这样

    1 update t_exd_changeno_seq set seq = 
    2 ((select changeno from t_exd_ar_tmp where
    3 t_exd_ar_tmp.exdebtcode = t_exd_changeno_seq.changenocode))

    但运行还是通不过

    错误是Cannot insert a null into column.

    检查了一遍,插入的数据没有null值阿~~~

    真令人摸不着头脑

    接着,我看系统的某个shell时,发现里面有类型的语句,好像要加上

    where exists的语句

    完整语句如下:

    1 update t_exd_changeno_seq set seq = 
    2 (select changeno from t_exd_ar_tmp where 
    3 t_exd_ar_tmp.exdebtcode = t_exd_changeno_seq.changenocode)
    4 where exists
    5 (select * from t_exd_ar_tmp where 
    6 t_exd_ar_tmp.exdebtcode = t_exd_changeno_seq.changenocode);

    这样的语句,就能成功update了,

    where exists部分就是搞掂了Cannot insert a null into column.的问题

    难道这就是imformix的语法?最后还得从新确认数据是不存在吗?真令人费解阿!!!

    所以阿,以前用oracle还是挺幸福的,5555

    此篇完毕!!!

  • 相关阅读:
    茶香账簿小程序开发进度(3)
    软件需求十步走阅读笔记(一)
    茶香账簿小程序开发进度(2)
    茶香账簿小程序开发进度(1)
    软件工程概论总结及对老师的意见
    人月神话阅读笔记03
    第二阶段第七次站立会议
    第二阶段第六次站立会议
    第二阶段第五次站立会议
    第二阶段第四次站立会议
  • 原文地址:https://www.cnblogs.com/ForeVerWater/p/4073406.html
Copyright © 2011-2022 走看看