标签: sql-update

MySQL:更新表中与其他查询的结果匹配的所有行

我写了一个查询返回关联Customers和Salespeoeple的行.

请注意,查询会连接多个数据库表.请注意,并非所有客户都有销售人员.

c_id     c_name   s_id   s_name
  24  microsoft      1     mike
  27        sun      1     mike
  42      apple      2     bill
  44     oracle      1     mike
  47        sgi      1     mike
  58       ebay      2     bill
  61     paypal      3      joe
  65     redhat      1     mike
Run Code Online (Sandbox Code Playgroud)

我的数据库中也有一个表(称为发票),如下所示.

i_id   c_id   c_name   s_id   s_name
7208     22   toyota   NULL     NULL
7209     23     ford   NULL     NULL
7210     27      sun   NULL     NULL
7211     42    apple   NULL     NULL
7212     12   nissan   NULL     NULL
7213     15       gm   NULL     NULL
7214     61 …
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-update

16
推荐指数
1
解决办法
3万
查看次数

在SQLite3中更改值

我将首先展示代码:

create table products ('name' text primary key, 'price' INTEGER)
insert into table products ('name', 'price') values ('coke', 8)
insert into table products ('name', 'price') values ('sprite', 9)
Run Code Online (Sandbox Code Playgroud)

什么是SQLite3代码将焦炭行的价格列的值更改为12.
所以我希望输出为焦炭12精灵9.

非常感谢你们!

sql sqlite sql-update

16
推荐指数
1
解决办法
3万
查看次数

SQL UPDATE语句用于在两行中切换两个值

我正在使用SQL Server在两行中交换两个值.让我展示:

[ord] [name]
1     John
4     Jack
7     Pete
9     Steve
11    Mary
Run Code Online (Sandbox Code Playgroud)

说,我需要交换[ord]数字为"Pete"和"Steve"使这个表格像这样:

[ord] [name]
1     John
4     Jack
9     Pete
7     Steve
11    Mary
Run Code Online (Sandbox Code Playgroud)

这似乎是一项微不足道的任务,但我似乎无法为它编写SQL UPDATE语句.

sql t-sql sql-server sql-update

16
推荐指数
3
解决办法
2万
查看次数

MySQL触发'列更新'语法

我们可以在更新特定列时使用MySQL触发器,这会更新同一个表中的另一列(同一行)

create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 =  NEW.col3 +1;
Run Code Online (Sandbox Code Playgroud)

我尝试使用上面的代码UPDATE OF col1, col2.它在MySQL中不起作用.什么是正确的语法,有人可以指出一些例子.

mysql syntax triggers sql-update

16
推荐指数
1
解决办法
2万
查看次数

MySQL 5.5.24 - UPDATE上的重复条目,当没有真正重复时

我必须使用以下结构更新表:

CREATE TABLE `eav_entity_attribute` (
  `entity_attribute_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity Attribute Id',
  `entity_type_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Entity Type Id',
  `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attribute Set Id',
  `attribute_group_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attribute Group Id',
  `attribute_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attribute Id',
  `sort_order` smallint(6) NOT NULL DEFAULT '0' COMMENT 'Sort Order',
  PRIMARY KEY (`entity_attribute_id`),
  UNIQUE KEY `UNQ_EAV_ENTITY_ATTRIBUTE_ATTRIBUTE_SET_ID_ATTRIBUTE_ID` (`attribute_set_id`,`attribute_id`),
  UNIQUE KEY `UNQ_EAV_ENTITY_ATTRIBUTE_ATTRIBUTE_GROUP_ID_ATTRIBUTE_ID` (`attribute_group_id`,`attribute_id`),
  KEY `IDX_EAV_ENTITY_ATTRIBUTE_ATTRIBUTE_SET_ID_SORT_ORDER` …
Run Code Online (Sandbox Code Playgroud)

mysql duplicates sql-update

16
推荐指数
1
解决办法
8754
查看次数

使用MySQL Workbench 5.2在表上执行更新命令时出错(错误代码:1175)

我正在使用包含MySQL Workbench 5.2 CE的MySQL Server5.5.我正在使用MySQL Workbench 5.2.我在DB中有一个名为user的表.我在MySQL Workbench上的SQL编辑器上执行了以下命令:

UPDATE user SET email = 'abc@yahoo.com' WHERE email='ripon.wasim@yahoo.com';
Run Code Online (Sandbox Code Playgroud)

但不幸的是我收到了以下错误:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor -> Query Editor and reconnect.
Run Code Online (Sandbox Code Playgroud)

怎么了?非常感谢帮助.

mysql error-code mysql-workbench sql-update

16
推荐指数
1
解决办法
4万
查看次数

16
推荐指数
1
解决办法
4万
查看次数

T-SQL条件更新(v2)

我有一张桌子:

Message (MessageID int, Subject nvarchar(100), Body nvarchar(max))
Run Code Online (Sandbox Code Playgroud)

在UI上更新消息后,我调用存储过程来更新该表.在某些情况下,用户可能只更新主题,在其他情况下只是正文.我希望这个存储过程仅更新已更改的内容,因此我还会传递标记,显示主题或正文是否已更新:

create proc UpdateMessage(
  @MessageID int, 
  @Subject nvarchar(100), 
  @Body nvarchar(max),
  @SubjectChanged bit,
  @BodyChanged bit)
Run Code Online (Sandbox Code Playgroud)

现在我很困惑如何构建条件UPDATE语句.我的第一个想法是使用CASE:

Update [Message] 
SET 
CASE WHEN @SubjectChanged = 1 THEN [Subject] = @Subject ELSE 1=1 END,
CASE WHEN @BodyChanged = 1 THEN Body = @Body ELSE 1=1 END,
WHERE MessageID = @MessageID
Run Code Online (Sandbox Code Playgroud)

......但这似乎不是一个正确的语法,因为CASE它必须是一个分配的右侧.

任何想法我怎么能这样做?(请记住,实际上有6个参数可以更新,而不是两个)

sql t-sql sql-server sql-update

15
推荐指数
3
解决办法
2万
查看次数

带有连接表的SQL可更新视图

我有一个看起来与此相似的观点,

SELECT  dbo.Staff.StaffId, dbo.Staff.StaffName, dbo.StaffPreferences.filter_type
FROM    dbo.Staff LEFT OUTER JOIN
        dbo.StaffPreferences ON dbo.Staff.StaffId = dbo.StaffPreferences.StaffId
Run Code Online (Sandbox Code Playgroud)

我正在尝试更新StaffPreferences.filter_type使用,

UPDATE vw_Staff SET filter_type=1 WHERE StaffId=25
Run Code Online (Sandbox Code Playgroud)

我在MSDN文章中读过这篇文章,

任何修改(包括UPDATE,INSERT和DELETE语句)都必须仅引用一个基表中的列.

这是否意味着我只能更新dbo.Staff中的字段(这是我当前可以实现的)在这个上下文中,'base table'的定义是否扩展到任何后续连接的表?

编辑:这是MS SQL

sql-server view sql-view sql-update

15
推荐指数
2
解决办法
3万
查看次数

PostgreSQL中有多个连接的UPDATE语句

我正在尝试更新一个名为的表incode_warrants,并将其设置warn_docket_noviol_docket_noincode_violations表中.

我在Postgres 9.3中有以下SQL查询,但是当它触发时我收到以下错误:

Error : ERROR:  relation "iw" does not exist
LINE 1: update iw
Run Code Online (Sandbox Code Playgroud)

我更像是一个活跃记录的人,所以我的原始SQL技能严重缺乏.我想知道是否有人可以帮助指出我正确的方向如何正确地进行此查询.

update iw
set iw.warn_docket_no = iv.viol_docket_no
from incode_warrants as iw
INNER JOIN incode_warrantvs as iwvs
on iw.warn_rid = iwvs.warnv_rid
INNER JOIN incode_violations as iv
ON iv.viol_citation_no = iwvs.warnv_citation_no and iv.viol_viol_no = iwvs.warnv_viol_no
Run Code Online (Sandbox Code Playgroud)

sql postgresql inner-join sql-update

15
推荐指数
3
解决办法
2万
查看次数