问题标签 [sql-insert]

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 投票
2 回答
2052 浏览

c# - SQL 脚本数据中的关键字在以编程方式执行时导致问题 - C#

我对 sql 还很陌生,并且在我的 sql 脚本中遇到了导致严重破坏的关键字的问题。我正在尝试在 C# 中执行预制的 .sql 脚本文件列表。我目前正在将文件读取为字符串并使用 command.ExecuteNonQuery() 执行它。这适用于大多数脚本,但我遇到了一个无意中包含关键字的脚本:

本质上,当它命中 GO 时,命令会失败。

我负责创建这些插入文件,所以如果我需要以某种方式重新格式化它们,那是可能的;但是,其中的数据是不可协商的。此外,由于我是从包含许多行的文件中加载它们,因此避免这些东西的参数化似乎也不可行。

在这一点上,任何帮助将不胜感激。非常感谢!

编辑以添加信息:

澄清一下,实际的字符串更像是“ASVFDS4+23eF3da34sddsdf3d3t4g...100charslater...sd5OAyGOsiISIssdsd/sNUIGsdisd354f”。当我尝试执行命令时,我捕获了异常,它说:

请注意,5OAy 紧随其后的是 GOsiIS...,这让我相信 GO 实际上是作为命令读取的,导致它期望在该命令之前结束字符串。

运行 .NET 3.5

编辑 2 我还应该澄清一下,我目前正在拆分实际的 GO 语句并单独执行命令。

IE

分裂,所以我执行

分别地。所以我的问题不在于实际的 GO 语句,而在于数据字符串中出现的字符“GO”。

回答:问题是我犯了一个非常愚蠢的错误。我在“GO”上拆分,它将命令字符串拆分在该参数中间出现字母 GO 的位置​​。

/掌脸

感谢所有的帮助!

0 投票
1 回答
484 浏览

php - Mysql 和 PHP 收件箱更新

我创建了一个收件箱系统。登录用户可以向其他登录用户发送消息。数据库中的 usermessage 表有两个字段 1. userid 和 2. messageid。以下是该表的摘录。

在上述情况下,当用户 '12' 向用户 '13' 发送消息时。我希望 messageid '1' 移动到表格底部,这样当用户 '12' 或 '13' 检查他的邮箱时,messageid '1' 需要作为最近的对话出现在收件箱的顶部。到目前为止,我已经能够通过删除 messageid '1' 并作为每个用户 ID 的新查询插入来实现这一点。这是我的代码:

是否可以通过一个查询完成此操作。到目前为止,我无法在堆栈流中找到与我的问题相关的任何明确答案。

0 投票
4 回答
8841 浏览

sql - 如果存在行则返回 id,否则为 INSERT

我正在 node.js 中编写一个函数来查询 PostgreSQL 表。
如果该行存在,我想从该行返回 id 列。
如果它不存在,我想插入它并返回 id ( insert into ... returning id)。

我一直在尝试caseif else声明的变体,但似乎无法让它发挥作用。

0 投票
2 回答
6606 浏览

sql - SQL Server – 使用单个(ANSI 样式)语句插入多行

我正在使用以下方法使用单个INSERT语句插入多行,即插入行的 ANSI 样式。它在 SQL Server 2008 和 2012 中可用。我不确定 SQL Server 2005/2000。

创建测试表:

单个INSERT语句插入 5 行

请让我知道是否有任何其他最佳方法可以实现这一目标

0 投票
2 回答
167 浏览

php - PHP 和 mySQL,使用当前日期?

PHP 和 mySQL 问题我希望你能帮助我。我有一个更新数据库选项(通过单击一个按钮,它运行 update.php 文件),现在这个 update.php 负责尝试分离我的 PASSENGER 表。

目前,我有一个巨大的 PASSENGER 表,如果今天发生业务旅行(它是一家旅行预订公司),那么他们在 CUSTOMER 表中,但我想要任何存档的客户(例如从昨天旅行的任何人向后,放入 ARCHIVED_CUSTOMER 表中。

现在,我有一个小的 PHP 脚本,它使用当前 PASSENGER 表中的信息添加到 ARCHIVED_PASSENGER 表中,但仅限于参数是 PASSENGER ID 的地方。

我对脚本的 DELETE FROM PASSENGER 部分感到非常满意,但想知道是否有人知道允许我从数据库中收集和移动大量信息的代码,其中旅行日期是昨天起等等。它完成了通过 PASSENGER 表的 activeUntil 部分。

非常精简的 PHP 脚本,但希望我已经说清楚了!

0 投票
3 回答
2693 浏览

php - 先更新或删除,然后再插入

我再次问这个问题,因为我无法从关于 SO 的其他问题中得到直接的答案。

我的情况如下,两张表,phonesfeatures.

结构:

电话

  • ID
  • 品牌标识
  • 模型
  • 图片
  • 发表

特征

  • ID
  • 电话号码
  • 特征

现在,features包含很多值,只有 1 和 4 之间的值对应于某个电话 via phone_id

现在,当我更新功能时,您认为删除然后再次插入新功能还是更新现有功能最好?

// 编辑:

特价商品

  • ID*
  • 电话号码
  • 合同编号
  • 开始发布
  • 完成_发布
  • 发表

合同

  • ID*
  • 姓名
  • 益处
  • 期间
  • 价格等

品牌

  • ID
  • 姓名
  • 标识

所以基本上,一个特殊的链接电话和合同在一起,并从两个表中获取信息以进行输出。然后在这个过程中,每部手机的功能都会使用一个函数单独加载。

// 编辑 2:

哦,一次只能删除/更新一部手机的功能,而且一次只能删除 1-4 个功能。此外,特征总是可以或多或少,而不是一个固定的数字。

0 投票
1 回答
1200 浏览

oracle - NHibernate 3.3:执行 Oracle 11g 存储过程

我将 Oracle 11g 存储过程映射为 NHibernate 的 .hbm.xml 映射文件中的命令,如下所示:

这是存储过程:

从这个映射中,我期望“Id”和“Name”属性将作为参数发送,但可以肯定的是,这不会发生;我从 Oracle 收到此错误:ORA-01036: invalid variable name/number。NHibernate 在控制台窗口中显示了一些日志,似乎 NH 尝试映射所有属性,包括 AuditFields,以调用存储过程。

也许这是消息来源的错误?

这是预期的行为吗?

是否可以使用 NH3/Oracle 指定哪些属性作为参数发送?

提前致谢。

0 投票
2 回答
216 浏览

mysql - Mysql Update/Insert:复制历史数据

我的 Mysql 数据库中有一些历史数据表。

我想在同一张表中重复一天的历史数据。

表结构,带有一些示例数据:

我想重复这些 id 和值,但要换一个新日期 - 例如 2012-05-01。即添加:

我觉得应该有一种直接的方法来做到这一点......我尝试过使用带有子查询的 UPDATE 语句并使用多个 LEFT JOIN,但还没有到达那里。

关于如何做到这一点的任何想法?

编辑:澄清... - 我不想将这些添加到新表中 - 我也不想更改表中的现有记录。- id 是有意复制的(它们是另一个表的外键,记录了数据所指的内容......)。

0 投票
1 回答
1098 浏览

oracle - NHibernate 3.3:使用 BLOB 参数执行 Oracle 11g 存储过程

我正在使用 NHibernate 3.3 和 ODP.NET 来持久化到 Oracle11g 数据库,这是配置的相关部分:

我将一个 byte[] 属性映射到一个 BLOB 字段并设置一个块来执行插入存储过程,如下所示:

数字实体在大小<=32k 的文件中保持正常;但我收到此错误 [ORA-01460: unimplemented or unreasonable conversion requested] with size>32k files。

是驱动限制吗?我该如何解决这个问题?

0 投票
1 回答
601 浏览

sql-server-2008-r2 - 在存储过程中从一台服务器到另一台服务器上的表进行 INSERT、UPDATE 或 DELETE

我有这个问题;我正在尝试在存储过程中执行INSERT, UPDATEorDELETE语句,从一台服务器到另一台服务器中的表。

示例:我有192.168.0.3一个带有数据库的服务器BaseA,在里面我添加了一个存储过程spu_a。在这个存储过程中,我想在服务器tableAinBaseB中的数据库表中插入一个新行。BaseB192.168.0.4

我怎样才能做到这一点?