首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我执行一条INSERT语句时,没有进行任何更改,尽管消息状态为(受影响的146689行)。我做错了什么?

当执行一条INSERT语句时,没有进行任何更改,但消息状态显示为"受影响的146689行",通常是由于以下原因之一:

  1. 数据库表结构问题:检查表结构是否正确,包括字段名、字段类型、字段长度等。确保INSERT语句中的字段与表结构一致。
  2. 主键或唯一索引冲突:如果表中存在主键或唯一索引,插入的数据可能与已有数据冲突,导致插入失败。检查插入的数据是否与已有数据重复。
  3. 触发器或存储过程问题:如果在表上定义了触发器或存储过程,可能会导致INSERT语句执行时发生错误。检查触发器或存储过程的逻辑是否正确。
  4. 数据库连接问题:检查数据库连接是否正常,确保能够正确连接到数据库。
  5. 数据库权限问题:检查当前用户是否具有执行INSERT语句的权限。如果没有足够的权限,插入操作将失败。
  6. 数据库事务问题:如果INSERT语句在一个未提交的事务中执行,但是事务没有正常提交或回滚,可能导致插入操作无效。确保事务的提交或回滚逻辑正确。
  7. 数据库引擎问题:某些数据库引擎可能存在bug或配置问题,导致INSERT语句执行时出现异常。检查数据库引擎的版本和配置,尝试更新或调整配置。

总结:当执行一条INSERT语句时,没有进行任何更改,但消息状态显示为"受影响的146689行",可能是由于数据库表结构问题、主键或唯一索引冲突、触发器或存储过程问题、数据库连接问题、数据库权限问题、数据库事务问题或数据库引擎问题所致。需要逐一排查以上可能的原因,以确定具体的错误原因并进行修复。

腾讯云相关产品和产品介绍链接地址:

  • 云数据库 TencentDB:https://cloud.tencent.com/product/cdb
  • 云服务器 CVM:https://cloud.tencent.com/product/cvm
  • 云函数 SCF:https://cloud.tencent.com/product/scf
  • 云存储 COS:https://cloud.tencent.com/product/cos
  • 人工智能 AI:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql executenonquery_ExecuteNonQuery()返回值注意点

结果与我所设想很不一致,调试才发现,其执行后返回结果是-1,对此很是不理解,回头查了下资料,如下显示: SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL...语句并返回受影响行数。...虽然 ExecuteNonQuery 不返回任何行,但映射到参数任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值该命令所影响行数。...对于所有其他类型语句,返回值 -1。如果发生回滚,返回值也 -1 看完后才明白,原来select语句不适合ExecuteNonQuery()方法,原来是这样,真笨,方法用错了!...虽然ExecuteNonQuery不返回任何行,但映射到参数任何输出参数或返回值都会用数据进行填充。 对于 UPDATE、INSERT 和 DELETE 语句,返回值该命令所影响行数。

1K20

触发器

一:什么是触发器 触发器是一种响应特定事件特殊类型存储过程 insert update... drop alter...等事件都有相应触发器 二:简单触发器 下面一个例子是在插入或者修改记录时候一个触发器... DiscontinuedDate = getdate() where ProductID = 680 好了现在来一条插入语句看看 use AdventureWorks go insert Sales.SalesOrderDetail...消息 3609,级别 16,状态 1,第 1 行 事务在触发器中结束。批处理已中止。...: (1 行受影响)     这是修改一行 (1 行受影响)     这是触发器执行一行 (1 行受影响)     这是select一行 五:视图上触发器 instead of触发器 先创建一个视图...title1') end update()函数意思是 指定列被更改时发生 看下验证语句 use xland go  update mytable set title = 'xland' where

1.3K20
  • ExecuteNonQuery()_sql存储过程返回值

    结果与我所设想很不一致,调试才发现,其执行后返回结果是-1,对此很是不理解,回头查了下资料,如下显示: SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL...虽然 ExecuteNonQuery 不返回任何行,但映射到参数任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值该命令所影响行数。...对于所有其他类型语句,返回值 -1。如果发生回滚,返回值也 -1 看完后才明白,原来select语句不适合ExecuteNonQuery()方法,原来是这样,方法用错了!...、INSERT 或 DELETE 语句,在不使用 DataSet 情况下更改数据库中数据。...虽然 ExecuteNonQuery 不返回任何行,但映射到参数任何输出参数或返回值都会用数据进行填充。 对于 UPDATE、INSERT 和 DELETE 语句,返回值该命令所影响行数。

    1.2K10

    MySQL中DML语句和事务概念「建议收藏」

    语句中可以使用IGNORE选项来当INSERT语句出错,不显示错误消息。...首先执行一个二表连接查询,从两个表中找到满足连接条件 t.teamno = m.teamno 所有行,然后对这些行分别进行更新 使用一条语句更新多个表优点是:要么两个表都更新,要么两个表都不更新...:总是由一条DCL语句构成 2.在MySQL中,系统变量@@autocommit默认是打开,这意味着任何1条SQL语句都会开始一个事务,语句执行完后事务自动结束。...自动提交打开或者关闭对这些事务没有影响 对于DML事务,在自动提交关闭情况下,事务开始分为隐式开始和显式开始: 隐式开始:程序一条DML语句执行时或者在COMMIT或ROLLBACK语句之后执行一条...已修改但未提交数据叫做赃数据 表中受影响行被锁定,其它用户(事务)不能在受影响行上修改数据 7.COMMIT或ROLLBACK语句之后数据状态 COMMIT之后: 数据改变被写到数据库中

    2K20

    mysql--触发器复习

    ,而每张表中对应行有两种状态:数据操作前和操作后 before:表中数据发生改变前状态 after:表中数据发生改变后状态 PS:如果 before 触发器失败或者语句本身失败,将不执行 after...表中插入数据,触发事件,向depart表中插入一条记录 CREATE TRIGGER pay_log AFTER INSERT ON payment FOR EACH ROW #触发器执行逻辑 BEGIN...如果我们买 id 3 商品 100 件,可以看到,此时报错,同时 orders 表和 goods 表数据并没有得到更新 可以看到,数据连 orders 表都未能插入,那么肯定就不会执行...语句对 orders 表进行更新 此时报错了,提示不能进行更新。...之后,又尝试在触发器中进行 insert 和 delete 操作,之后更新时候还是报同样错误 因此说明:MySQL 触发器中不能对本表进行 insert、update 和 delete 操作,否则会报错

    2.5K10

    【MySQL】事务

    假设一种场景:给某个人转账,数据库必定需要将我账户上金额 update ,然后给对方账户 add 操作等等,这样,就需要多条 MySQL 语句构成,那么所有这些操作合起来,就构成了一个事务。...可以想一下当我们使用事务,要么提交,要么回滚,我们不会去考虑网络异常了,服务器宕机了,同时更改一个数据怎么办对吧?因此事务本质上是为了应用层服务,而不是伴随着数据库系统天生就有的。...那么表中数据也就没有了。现在我们把该事务提交,对应语句 commit;。...读提交 — RC 首先我们将隔离级别改成 RC: 当我们将两个终端隔离级别都设置 RC 后,下面我们开始一些实验。...在可重复读中,我们假设第一个终端终端A,第二个终端B,多次查看,发现终端A在对应事务中 insert 数据,在终端B事务周期中,也没有什么影响,也符合可重复特点。

    10610

    盘点一下数据库误操作有哪些后悔药?

    修复线上数据,改错了,想还原。 还有很多很多场景,就不一一列举了。 如果出现线上环境数据库误操作怎么办?有没有后悔药? 答案是有的,请各位看官仔细往下看。...很多时候,由于我们人为失误,把where条件写错了。但没有怎么仔细检查,就把sql语句直接执行了。影响范围小还好,如果影响几万、几十万,甚至几百万行数据,我们可能要哭了。...也给自己一次测试sql是否正确,确认是否执行机会。 4.操作数据sql加limit 即使通过上面的select语句确认了sql语句没有问题,执行后影响记录行数是对。...5.update更新修改人和修改时间 很多人写update语句,如果要修改状态,就只更新状态,不管其他字段。...id=123; 7.操作数据之前先备份 如果只是修改了少量数据,或者只执行了一两条sql语句,通过上面的修改人和修改时间字段,在需要回滚,能快速定位到正确数据。

    78151

    线上数据删错了,差点被老板开除

    修复线上数据,改错了,想还原。 还有很多很多场景,就不一一列举了。 如果出现线上环境数据库误操作怎么办?有没有后悔药? 答案是有的,请各位看官仔细往下看。...很多时候,由于我们人为失误,把where条件写错了。但没有怎么仔细检查,就把sql语句直接执行了。影响范围小还好,如果影响几万、几十万,甚至几百万行数据,我们可能要哭了。...也给自己一次测试sql是否正确,确认是否执行机会。 4.操作数据sql加limit 即使通过上面的select语句确认了sql语句没有问题,执行后影响记录行数是对。...5.update更新修改人和修改时间 很多人写update语句,如果要修改状态,就只更新状态,不管其他字段。...id=123; 7.操作数据之前先备份 如果只是修改了少量数据,或者只执行了一两条sql语句,通过上面的修改人和修改时间字段,在需要回滚,能快速定位到正确数据。

    84711

    游标

    ) --提取下一条记录 fetch next from tablecursor into @id,@title,@username end 三:游标的作用域 做个存储过程, 里面的游标是全局, 存储过程内部没有关闭释放游标...执行语句如下 use xland go  exec spcursorscope 执行结果 1         2       测试看看      xland 2         4       asdfasdf...   asdfasdf 其中一行受影响就是 select 语句执行结果, 2 测试看看 4 这是更新数据 5 asdfasdf 静态游标:一旦创建就与实体记录分开了,并不维持任何锁 实体表发生了更新...9     应该没问题 10     暗暗 (1 行受影响) (1 行受影响) (1 行受影响) (8 行受影响) delete 4   这不是更新数据 5   asdfasdf 6   全文索引全文索引全文索引...7 xland 8 可以吗 9 应该没问题 10 暗暗 33 这是插入 如果把keyset改成dynamic 删除记录没有通知 消息里显示出了 插入记录和更新记录 可以在游标滚动时候修改表记录

    50430

    【MySQL (三) | 五分钟搞清楚MySQL事务隔离级别】

    在这个事务还没有结束,另外一个事务也访问该同一数据。那么,在第一个事务中两次读数据之间,由于第二个事务修改,那么第一个事务两次读到数据可能是不一样。...举个栗子: 1.在事务1中,张三 读取了自己工资10000,但是操作还没有完成; 2.在事务2中,正好财务人员修改了张三工资20000,并提交了事务; 3.在事务1中,张三再次读取自己工资,...img 接下来在会话2执行如下语句,把id1记录 account 值增加 200,但是并没有提交事务: SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED...我们在会话1中表account添加一条数据: insert into t_transaction(id,account) value(,); commit; 然后我们查询看数据插入是否成功: ?...会话2中想插入一条新数据id=3,value=1000。来我们操作下: insert into t_transaction(id,account) value(,); 执行结果: ?

    64250

    【第3版emWin教程】第41章 emWin6.x窗口管理器基础知识(重要)

    作出更改影响了特定窗口,窗口管理器将该窗口标记为无效,下次窗口重绘(手动或通过回调函数),将进行验证。 这个功能比较有用,后面章节中会用到。...回调函数中会有一个switch语句,它使用一个或多个case语句不同消息定义不同行为,其中重绘消息WM_PAINT是一个比较重要消息。...注意,处理WM_PAINT消息,不得在此消息里面执行以下操作: 处理WM_PAINT消息,下列函数不能调用:WM_SelectWindow()、WM_Paint()、WM_DeleteWindow(...更改窗口属性其他任何函数也不能调用:WM_Move()、WM_Resize()等。...41.4.6 自动使用存储设备 窗口管理器默认特性是向每个需要重绘窗口发送一条WM_PAINT消息,但这会导致窗口闪烁。抑制每个窗口闪烁,可使能重绘操作自动使用存储设备。

    1.6K20

    Java面试手册:数据库 ④

    这是执行了两条SQL语句 如果定义一个触发器(向西安北站添加一条记录时候,同时添加同样记录到办公室) 这样执行一条SQL语句。...当INSERT、UPDATE 或 DELETE 语句修改指定表或视图中数据,可以使用 DML 触发器。...on table1 //触发器类型,什么时候启动触发器 for each row //受影响行 begin //开始 insert into...:少执行SQL语句,因为在和java连接时候,每执行一条语句就会连接JDBC接口,消耗资源。...什么是视图:一个人包含某个查询虚拟表 对视图进行操作,依托于真实表 主要目的简化语句 对性能没有改善 视图允许嵌套 视图不能索引,没有关联,没有默认值 视图用途 筛选表中行,降低数据库复杂程度

    1.3K30

    使用嵌入式SQL(五)

    任何局部变量一样,值将在过程持续期间或直到设置另一个值或使用NEW进行定义之前一直存在。例如,某些成功嵌入式SQL操作未设置%ROWID。...更新这些变量可防止干扰这些变量先前设置。避免错误,不应在迭代周期内执行此NEW操作。%msg包含系统提供错误消息字符串变量。...当触发器代码显式设置%ok = 0来中止触发器,这最常用于从触发器发出用户定义消息。当执行SQL代码,将使用有效NLS语言生成错误消息字符串。可以在不同NLS语言环境中编译SQL代码。...INSERT,UPDATE,INSERT OR UPDATE和DELETE将%ROWCOUNT设置受影响行数。带有显式值INSERT命令只能影响一行,因此将%ROWCOUNT设置0或1。...另请注意,显式回滚事务不会影响%ROWCOUNT值。例如,以下内容将报告已进行更改,即使它们已经滚动了。

    2.7K20

    SqlAlchemy 2.0 中文文档(五十四)

    重新加载了会话中数据,但它没有看到我在其他地方提交更改 这种行为主要问题在于,会话表现得好像事务处于可串行化隔离状态一样,即使实际上并非如此(通常也不是)。...当加载对象,为什么 __init__() 没有被调用? 查看跨加载保持非映射状态以了解此行为描述。 如何在 SA ORM 中使用 ON DELETE CASCADE?...## 正在使用会话重新加载数据,但它没有看到我在其他地方提交更改 关于这种行为主要问题是,会话行为就像事务处于可串行化隔离状态一样,即使事务并不是(通常情况下并不是)。...为什么还必须再次 ROLLBACK? 由 flush() 引起回滚并不是完整事务块结束;尽管它结束了正在进行数据库事务,但从 Session 角度来看,仍然存在一个处于非活动状态事务。...当我加载对象,为什么__init__()没有被调用? 有关此行为描述,请参阅 跨加载保持非映射状态如何在 SA ORM 中使用 ON DELETE CASCADE?

    30110

    Edge2AI之使用 FlinkSSB 进行CDC捕获

    Flink 支持将 Debezium JSON 和 Avro 消息解释 INSERT/UPDATE/DELETE 消息到 Flink SQL 系统中。...此模式在第一次执行查询获取表内容完整快照,然后相同查询后续运行可以读取自上次执行以来更改内容。还有许多其他快照模式。...默认情况下,当您在 SSB 中运行查询,UI 中只会显示一小部分选定消息(每秒一条消息)。这可以避免减慢 UI 并导致作业出现性能问题。...发生了什么?您是否再次获得初始快照数据?为什么? 当使用initial快照模式,Flink 会跟踪最后处理变更日志并将此信息存储在作业状态中。...当您在 SSB 中停止作业,它会创建作业状态保存点,可用于稍后恢复执行

    1.1K20

    MySQL集群(二)之主主复制

    insert into tb_love(name)values('zhangsan');   第三步:如果我们在从节点中加入一条数据   insert into tb_love(name)values(...分析:这时候我们会发现从节点并没有更新主节点wangwu这条数据,因为从节点中id2位置已经被占了,然后我们在来看一下从节点状态: ?   ...(如果说主节点中有个数据库是从节点中没有的,那当我们删除这个数据库,从节点没有就会出错了)   2)二是保证主从节点:数据库主键自增步长一致,但是自增起始位置位置不一致。     ...Log 文件中内容成为在 Master 端真实执行时候那些可执行 Query 语句,并在自身执行这些 Query。   ...而是通过查询(分析)主节点中数据变化结果(如插入、删除、修改操作)         ,来自己生成SQL语句存入到二进制日志文件中,所以为什么我们在主节点中指定查询语句,从节点不会去做查询操作了。

    1.5K50

    【愚公系列】2022年01月 Mysql数据库-事务

    .隔离级别总结 10.事务总结 一、MySQL事务 1.事务概念 一条或多条 SQL 语句组成一个执行单元,其特点是这个单元要么同时成功要么同时失败,单元中每条 SQL 语句都相互依赖,形成一个整体...,如果某条 SQL 语句执行失败或者出现错误,那么整个单元就会回滚,撤回到事务最初状态,如果单元中所有的 SQL 语句执行成功,则事务就顺利执行。...4.管理事务演示 操作事务三个步骤 开启事务:记录回滚点,并通知服务器,将要执行一组操作,要么同时成功、要么同时失败 执行sql语句执行具体一条或多条sql语句 结束事务(提交|回滚)...提交:没出现问题,数据进行更新 回滚:出现问题,数据恢复到开启事务状态 开启事务 -- 标准语法 START TRANSACTION; 回滚事务 -- 标准语法 ROLLBACK; 提交事务 --...7.事务隔离级别 隔离级别的概念 多个客户端操作 ,各个客户端事务之间应该是隔离,相互独立 , 不受影响

    35030

    浅谈MySQL Binlog

    优点:所有更改都可以复制。这是最安全复制形式。对于以下类型语句,源上需要更少行锁,从而实现更高并发性:INSERT ......对于使用MyISAM 存储引擎表,INSERT当将它们作为基于行事件应用于二进制日志语句副本需要比将它们作为语句应用时更强锁。这意味着MyISAM在使用基于行复制不支持对表并发插入。...Statement level(语句记录,默认)简介:每一条被修改数据sql都会记录到masterbin-log中,slave在复制时候sql进程会解析成和原来master端执行相同sql再次执行...当更新或删除影响许多行时,这会导致 日志文件所需存储空间少得多。这也意味着可以更快地完成备份和恢复。日志文件包含进行任何更改所有语句,因此它们可用于审计数据库。 缺点:INSERT ......使用基于行复制,副本只需要修改受影响行,而不是执行完整语句。如果对副本进行评估出现错误,尤其是在执行复杂语句,则基于语句复制可能会随着时间推移慢慢增加受影响误差幅度。

    28000

    【Java 进阶篇】使用 JDBC 更新数据详解

    SQL语句可以包括INSERT、UPDATE和DELETE等操作。 执行SQL语句执行SQL更新语句,将更改应用于数据库。...影响行数:" + rowsAffected); } else { System.out.println("没有进行更新操作。")...然后,我们处理更新结果,根据受影响行数确定是否成功执行了更新操作。 处理更新结果 在上面的示例中,我们通过检查受影响行数来确定更新操作是否成功。...通常情况下: 如果受影响行数大于0,表示更新操作成功,并且指定数量行已被修改。 如果受影响行数等于0,表示更新操作执行了,但没有修改任何行,因为条件不满足。...如果发生异常,可能是由于SQL语法错误或数据库连接问题引起。 根据实际需求,您可以选择如何处理更新结果。在示例中,我们简单地打印了一条消息,指示更新是否成功。

    49930
    领券