问题标签 [insert-update]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1100 浏览

sql - SQL - 表设计 - DateCreated 和 DateUpdated 列

对于我的应用程序有几个实体类,User、Customer、Post 等

我即将设计数据库,我想存储创建和更新实体的日期。这就是棘手的地方。当然,一种选择是为每个实体表添加 created_timestamp 和 update_timestamp 列,但这不是多余的吗?

另一种可能性是创建一个存储此信息的日志表,并且可以使其包含对任何实体的更新的跟踪。

有什么想法吗?我倾向于实施后者。

0 投票
4 回答
9655 浏览

sql - 在不使用存储过程的情况下在 SQL Server 2005 上插入/更新

我正在尝试执行经典的插入/更新方案,我需要更新数据库中的现有行,或者如果它们不存在则插入它们。

在这个主题上找到了一个先前的问题,但它处理的是我没有使用的存储过程。我只想使用普通的 SQL SELECT、INSERT 和 UPDATE 语句,除非有更好的可用(SQL Server 2005 中没有 MERGE 语句)。

我想我的总体想法是这样的:

至于检查一行是否存在,在调用 UPDATE 或 INSERT 之前执行 SELECT 语句的成本是多少?还是只尝试更新,检查受影响的行数,然后在受影响的行为 0 时执行 INSERT 是否更好?

0 投票
7 回答
25699 浏览

php - 有没有办法在 Zend Framework 1.5 中执行“INSERT...ON DUPLICATE KEY UPDATE”?

我想ON DUPLICATE KEY UPDATE在 Zend Framework 1.5 中使用,这可能吗?

例子

0 投票
7 回答
35077 浏览

nhibernate - 如何使用 NHibernate 插入或更新(或覆盖)记录?

无论它是否已经存在,我都需要向数据库写入一行。在使用 NHibernate 之前,这是通过存储过程完成的。该过程将尝试更新,如果没有行被修改,它将回退到插入。这很有效,因为应用程序并不关心记录是否存在。

使用 NHibernate,我发现的解决方案需要加载实体并对其进行修改,或者删除实体以便插入新实体。应用程序必须关心记录是否已经存在。有办法解决吗?

身份证重要吗?

分配的 ID

该对象有一个关键字作为分配的 id,并且是表中的主键。

我了解 SaveOrUpdate() 将根据 Id 适当调用 Save() 或 Update() 方法。使用分配的 id,这将不起作用,因为 id 不是未保存的值。但是,可以将版本或时间戳字段用作指示符。实际上,这无关紧要,因为这仅反映内存中的对象是否与数据库中的记录相关联;它不指示该记录是否存在于数据库中。

生成的 ID

如果分配的 id 确实是问题的原因,我可以使用生成的 id 而不是关键字作为主键。这将避免 NHibernate 插入/更新问题,因为它总是会有效地插入。但是,我仍然需要防止重复的关键字。使用关键字列上的唯一索引,即使主键不同,它仍然会为重复关键字抛出异常。

另一种方法?

也许问题不在于 NHibernate,而在于建模的方式。与应用程序的其他领域不同,这更以数据为中心,而不是以对象为中心。很高兴 NHibernate 使其易于读/写并消除了存储过程。但是,不考虑现有值而简单地编写的愿望与对象身份模型的模型不太吻合。有没有更好的方法来解决这个问题?

0 投票
5 回答
63921 浏览

sql - DB2 是否有“插入或更新”语句?

从我的代码(Java)中,我想确保在我的代码执行后数据库(DB2)中存在一行。

我的代码现在执行 a select,如果没有返回结果,它执行insert. 我真的不喜欢这段代码,因为它让我在多线程环境中运行时遇到并发问题。

我想做的是将这个逻辑放在 DB2 中,而不是放在我的 Java 代码中。DB2 有insert-or-update声明吗?或者我可以使用的任何类似的东西?

例如:

另一种方法可能是始终执行插入并捕获“SQL-code -803 主键已经存在”,但如果可能的话,我想避免这种情况。

0 投票
3 回答
5412 浏览

sql - 如何在 SQL Server 2005 中的 INSERT 和 UPDATE 上舍入定义为浮点数的列

我正在研究一个使用浮点数据类型来存储应该只有两位小数(美元和美分)的值的数据库。

只要更新 float 列的人执行 ROUND,使用 float 似乎可以正常工作。当然,这并不总是发生,然后当 SUM 完成时,它总是与显示的内容相差几美分,因为显示被格式化为仅显示两个小数位。该数据库有数百个使用浮点数的表,能够自动对浮点数列进行舍入会很有帮助。

这可以做到吗?

可以在 INSERT 和 UPDATE 上使用 TRIGGER 在列上执行 ROUND 吗?

如果可以,您能否展示如何编写 TRIGGER 代码并推荐它?

还有其他想法吗?

我们正在使用SQL Server 2005

这是一篇提出问题的帖子,会计应用程序美元金额使用浮点数还是小数?,我喜欢这样的一个回应

“您真的应该考虑使用某种类型的定点/任意精度数字包(例如,Java BigNum、python 十进制模块),否则您将陷入痛苦的世界”。

0 投票
3 回答
606 浏览

linq-to-sql - 无法更新 Linq2Sql 中的表映射

我现在遇到了麻烦,我无法在 DBDataContext 中更新表 X,所以这是我的片段,顺便说一下,当我只更新一个表时它可以工作!但是当我插入然后更新时,它会抛出异常:“无法将对象从 System.Int32 转换为 System.String 类型”

当我执行更新时,我从调试器中获取了这个堆栈:

0 投票
3 回答
4242 浏览

linq-to-sql - LINQ to SQL,在 db.SubmitChanges() 上失败

我在尝试更新时遇到异常,Insert 工作得很好。所以这是: System.Data.Linq.dll 中出现“System.InvalidCastException”类型的第一次机会异常另一个提示......可以插入一个表中首先然后更新另一个表,最后在同一个代码块中提交更改()?我也评论 InsertOnSubmit(); 我重建 dbml(删除并再次创建)更改了名称、上下文等。代码:

堆 :

感谢您一直以来的支持

XML:

XML : 哦哦 :)

0 投票
3 回答
94 浏览

sql - 一次插入记录

我有 2 个表 TableA 和 TableB 如果记录不在 TableB 中,我想一次将所有记录从 TableA 插入到 TableB

请帮忙谢谢

0 投票
1 回答
1618 浏览

c# - 为 OleDbDataAdapter 编写自定义插入/更新命令

我正在使用 OleDbDataAdapter 填充数据集中的表。问题是 select sql 语句非常复杂(使用左连接从众多表中获取数据)并且 OleDbCommandBuilder 无法为我编写插入/更新语句。

我想知道这里最好的做法是什么?没有多少列可以更改数据(仅需要 30 列中的 6-8 列左右),但重要的是我可以尽可能简单地执行 OleDbDataAdapter.Update(速度和资源使用非常重要)。

有没有人有这样做的经验?这里最好/推荐的行动方案是什么?

谢谢您的意见!

编辑:我还可以在为 OleDbDataAdapter 编写更新语句时使用一些帮助,尤其是在涉及多表更新时。如果有人能指点我一些文学作品,那就太好了!