如何检查简单的insert into values语句错误

作者:没什么大不了 | 创建时间: 2023-08-01
今天一同学的简单sql语句(informix数据库)把小编弄的很头痛,语句是: insert into lcd_gc_ttk3_6d(int_id,recorder_id,omg_id,editor_id,insert_time,skan_...
如何检查简单的insert into values语句错误

步骤

先建立一个测试表:love_test。并查询。 建表语句: create table love_test (   test_ky NUMBER(10) NOT NULL,  NAME1 VARCHAR2(20),  NAME2 VARCHAR2(20),  NAME3 VARCHAR2(20),  NAME4 VARCHAR2(20),  NAME5 VARCHAR2(20),  NAME6 VARCHAR2(20),  NAME7 VARCHAR2(20),  AGE1  FLOAT(10),  AGE2  FLOAT(10),  AGE3  FLOAT(10),  AGE4  FLOAT(10),  AGE5  FLOAT(10),  AGE6  FLOAT(10),  AGE7  FLOAT(10),  AGE8  FLOAT(10),  AGE9  FLOAT(10)  ); 查询语句: select * from love_test;

错误的插入语句为: INSERT INTO love_test (test_ky,Name1,Name2,Name3,Name4,Name5,Name6,Name7,AGE1,AGE2,AGE3,AGE4,AGE5,AGE6,Age7,AGE8,Age9)VALUES  (1, 'a','b','c','d','e','f',,1,0,,,,1,1,99); 如图,执行插入语句弹出了出错提示,表达式错误(miss expression)。

第一步:只插入NOT NULL字段 测试表不为空的字段只有一个,那插入语句可以很简化了: INSERT INTO love_test  (test_ky) VALUES  (1); 并用查询语句 select * from love_test; 进行查询

第二步:一分为二进行插入 第一步没有找到错误,那么就把要插入数据为NULL的字段一分为二缩小范围查找(NOT NULL字段都要加上哦)。 小编这个测试语句就按类型分了。 插入语句为: INSERT INTO love_test  (test_ky,Name1,Name2,Name3,Name4,Name5,Name6,Name7)  VALUES  (1, 'a','b','c','d','e','f',); 现在又报错了,当然,小编这里数据少,所以很明显的看出里是插入Name7字段出错了。为了更明显的说明这方法。再加一步。

第三步 至 第N步:继续一分为二进行插入查找 上一步是找到了错误,若前半部分没有错误,那么就对后半部分进行插入查找错误。 当找到前半部分错误后,继续使用一分为二方法,小编将前后部分的语句都写出来: 前半部分插入: INSERT INTO love_test  (test_ky,Name1,Name2,Name3)  VALUES  (1, 'a','b','c'); 后半部分插入: INSERT INTO love_test  (test_ky,Name4,Name5,Name6,Name7)  VALUES  (1,'d','e','f',); 如图,找到了是后半部分的问题。 就这样反复查找,终会有查到错误所在的。

温馨提示

应该有工具(软件)可以更快的找到错误,这里只是小编个人意见。
点击展开全文

更多推荐