UPDATE

更新记录的几种方式 :

  1. 单表更新:UPDATE [LOW_PRIORITY] [IGNORE] table_referece SET col_name1={expr1|DEFAULT} [,col_name2={expr2| DEFAULT} ] … [WHERE where_condition]

UPDATE users SET age= age+5; //省略where条件 更新所有

mysql> SELECT * FROM users;
+----+----------+----------------------------------+-----+------+
| id | username | password                         | age | sex  |
+----+----------+----------------------------------+-----+------+
|  1 | Tom      | 123                              |  23 |    1 |
|  2 | Json     | 123                              |  23 |    1 |
|  3 | Json     | 123                              |  23 |    1 |
|  4 | Json     | 123                              |  10 |    1 |
|  5 | Json     | 123                              |  23 |    1 |
|  6 | Rose     | 202cb962ac59075b964b07152d234b70 |  10 |    0 |
|  7 | Ben      | 456                              |  10 | NULL |
+----+----------+----------------------------------+-----+------+
7 rows in set (0.00 sec)
mysql> UPDATE users SET age= age+5;
Query OK, 7 rows affected (0.04 sec)
Rows matched: 7  Changed: 7  Warnings: 0

mysql> SELECT * FROM users;
+----+----------+----------------------------------+-----+------+
| id | username | password                         | age | sex  |
+----+----------+----------------------------------+-----+------+
|  1 | Tom      | 123                              |  28 |    1 |
|  2 | Json     | 123                              |  28 |    1 |
|  3 | Json     | 123                              |  28 |    1 |
|  4 | Json     | 123                              |  15 |    1 |
|  5 | Json     | 123                              |  28 |    1 |
|  6 | Rose     | 202cb962ac59075b964b07152d234b70 |  15 |    0 |
|  7 | Ben      | 456                              |  15 | NULL |
+----+----------+----------------------------------+-----+------+
7 rows in set (0.00 sec)
mysql> UPDATE users SET age= age -id, sex=0;
Query OK, 7 rows affected (0.04 sec)
Rows matched: 7  Changed: 7  Warnings: 0

mysql> SELECT * FROM users;
+----+----------+----------------------------------+-----+------+
| id | username | password                         | age | sex  |
+----+----------+----------------------------------+-----+------+
|  1 | Tom      | 123                              |  27 |    0 |
|  2 | Json     | 123                              |  26 |    0 |
|  3 | Json     | 123                              |  25 |    0 |
|  4 | Json     | 123                              |  11 |    0 |
|  5 | Json     | 123                              |  23 |    0 |
|  6 | Rose     | 202cb962ac59075b964b07152d234b70 |   9 |    0 |
|  7 | Ben      | 456                              |   8 |    0 |
+----+----------+----------------------------------+-----+------+
7 rows in set (0.00 sec)

加WHERE

mysql> UPDATE users SET age= age+10 WHERE id%2=0;
Query OK, 3 rows affected (0.06 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> SELECT * FROM users;
+----+----------+----------------------------------+-----+------+
| id | username | password                         | age | sex  |
+----+----------+----------------------------------+-----+------+
|  1 | Tom      | 123                              |  27 |    0 |
|  2 | Json     | 123                              |  36 |    0 |
|  3 | Json     | 123                              |  25 |    0 |
|  4 | Json     | 123                              |  21 |    0 |
|  5 | Json     | 123                              |  23 |    0 |
|  6 | Rose     | 202cb962ac59075b964b07152d234b70 |  19 |    0 |
|  7 | Ben      | 456                              |   8 |    0 |
+----+----------+----------------------------------+-----+------+
7 rows in set (0.00 sec)
  1. 多表更新:UPDATE table_referece SET col_name1={expr1|DEFAULT} [,col_name2={expr2| DEFAULT} ] … [WHERE where_condition]
    表的链接
mysql> UPDATE tdb_goods INNER JOIN tdb_goods_cate ON goods_cate = cate_name SET goods_cate = cate_id;
### Update信令的工作原理 Update信令通常用于通信网络中更新会话参数或重新协商媒体流的配置。在SIP协议中,Update消息可以被视为一种扩展机制,用于在会话建立后动态调整会话属性。例如,在VoLTE(Voice over LTE)场景下,Update信令可能被用来更新媒体流的编码方式、带宽需求或加密密钥等信息[^3]。 Update信令的基本工作流程如下: - 发起方发送一个Update请求消息,其中包含需要更新的会话参数。 - 接收方收到Update请求后,解析其中的参数并决定是否接受这些更改。 - 如果接收方接受更新,则返回一个200 OK响应消息,并在响应中确认新的会话参数。 - 如果接收方拒绝更新,则返回相应的错误响应(如488 Not Acceptable Here)。 ### Update信令的实现方式 在实现Update信令时,通常需要遵循以下步骤: 1. **定义更新内容**:发起方需要明确哪些会话参数需要更新,并将这些参数封装到Update请求的消息体中。例如,可以通过SDP(Session Description Protocol)描述新的媒体流配置。 2. **发送Update请求**:发起方通过SIP协议发送Update请求消息,目标地址为当前会话的对方终端。 3. **处理Update响应**:接收方接收到Update请求后,根据自身能力判断是否接受更新。如果接受,则返回200 OK响应,并在响应中确认新的会话参数;否则返回错误响应。 4. **应用更新后的参数**:双方在确认Update成功后,按照新的会话参数进行后续通信。 ### Update信令的常见问题及解决方法 1. **信令交互失败**: - 问题描述:Update请求未能正确到达接收方,或者接收方未返回任何响应。 - 解决方法:检查网络连接状态,确保SIP信令路径畅通。同时,验证Update请求的消息格式是否符合规范[^3]。 2. **参数不匹配**: - 问题描述:接收方无法接受发起方提出的更新参数,导致Update失败。 - 解决方法:在发送Update请求前,确保所提参数与接收方的能力范围相匹配。可以通过预先协商的方式确定双方支持的参数集。 3. **安全性问题**: - 问题描述:Update信令可能被中间人攻击者篡改,导致通信内容泄露或被篡改。 - 解决方法:利用认证和加密技术保护Update信令的安全性。例如,在UE和网络之间生成并定期更新加密密钥,确保数据传输过程中的机密性和完整性[^1]。 ```python # 示例代码:模拟Update信令的发送与接收 def send_update_request(session_id, new_parameters): """ 模拟发送Update请求 :param session_id: 当前会话ID :param new_parameters: 需要更新的会话参数 """ update_message = f"UPDATE sip:{session_id} SIP/2.0\r\n" update_message += "Content-Type: application/sdp\r\n" update_message += "\r\n" update_message += new_parameters print("发送Update请求:", update_message) def process_update_response(response): """ 处理Update响应 :param response: 接收到的响应消息 """ if "200 OK" in response: print("Update请求成功") else: print("Update请求失败:", response) # 示例调用 send_update_request("123456", "v=0\r\no=user1 111111 222222 IN IP4 192.168.1.1\r\n") process_update_response("SIP/2.0 200 OK") ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值