【发布时间】:2021-07-25 07:00:45
【问题描述】:
我想创建一个存储过程。我有 2 个数据库 - 一个包含客户数据,第二个包含折扣代码。我想为每个客户分配代码。该代码只能分配一次,因此我想在分配代码后将其标记为“已使用”。代码应该只分配给那些没有分配代码的客户。
客户数据库:
| CUSTOMER ID | CUSTOMER CODE |
|---|---|
| 1 | 6f73js |
| 2 | |
| ... | ... |
DATA_DISCOUNT_CODES:
| ID | CODE | STATUS |
|---|---|---|
| 1 | 6f73js | USED |
| 2 | kdw45s | |
| ... | ... | ... |
是否可以在一个查询中使用 INSERT INTO 和 UPDATE ?我试图这样做,但有些东西不起作用。状态更改为“已使用”,但代码未分配。
INSERT INTO CUSTOMERS_DATABASE (CUSTOMER CODE)
SELECT CODE FROM DATA_DISCOUNT_CODES
WHERE STATUS = ''
UPDATE DATA_DISCOUNT_CODES
SET STATUS = 'Used';
你能帮我写查询吗?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
你的 DBMS 是什么?
-
我的 DBMS 是 MySQL 8.0
标签: mysql database stored-procedures sql-update sql-insert