ใช้ MYSQL สร้าง 실행 번호
5129 단어 programmingmysql
สมมติเราทำระบบบัญชี ซึ่งลูกค้าแต่ละคนก็จะมี Invoice Number ที่มี running number เป็นของตัวเองเช่น User A ล่าสุดออก INV0100 อันต่อไปก็ต้องเป็น INV0101 ส่วน User B ล่าสุดออก INV0222 ต่อไปก็ต้องเป็น INV0223
เรามีข้อมูลตาราง 사용자 คร่าวๆแบบนี้
CREATE TABLE users (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(256)
);
เราให้ MYSQL ช่วย เก็บ 실행 번호 ของ แต ่ละ 사용자 ได้โดยสร้างอีกตาราง แบบนี้
CREATE TABLE inv_numbers (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
user_id INTEGER NOT NULL UNIQUE,
number INTEGER NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id)
);
เรา เรา เรา ให้
user_id
เป็น เป็น 외국 키 และ 고유 키 เพื่อ ลิ้ง ลิ้ง กลับ ไป ว่า 레코드 레코드 เป็น 실행 번호 ของ ของ คน แบบ แบบ นี้ แต่ละ แต่ละ แต่ละ มี มี มี ได้ ได้ แค่ 레코드 เดียวแน่นอนด้วย ด้วย แบบ แบบ ตาราง เรา สามารถ ใช้
INSERT ... ON DUPLICATE KEY UPDATE Statement
ช่วย เพิ่ม ค่า ค่า ของ number
ไป ที ที ละ ละ 1 และ และ ถ้า ยัง ยัง ไม่ มี มี 숫자 레코드 มา มา ก่อน ให้ เริ่ม ที่ ที่ 1 ได้ แบบ แบบ นี้ โดย โดย สมมติ เป็น ของ ของ ของ ของ ของ เท่า 1 เท่า 1INSERT INTO users (name) VALUES ("Weerasak");
mysql> SELECT * FROM users;
+----+----------+
| id | name |
+----+----------+
| 1 | Weerasak |
+----+----------+
INSERT INTO inv_numbers (user_id, number) VALUES (1, 1)
ON DUPLICATE KEY UPDATE number=number+1;
mysql> SELECT * FROM inv_numbers;
+----+---------+--------+
| id | user_id | number |
+----+---------+--------+
| 1 | 1 | 1 |
+----+---------+--------+
1 row in set (0.00 sec)
mysql> INSERT INTO inv_numbers (user_id, number) VALUES (1, 1) ON DUPLICATE KEY UPDATE number=number+1;
Query OK, 2 rows affected (0.01 sec)
mysql> SELECT * FROM inv_numbers;
+----+---------+--------+
| id | user_id | number |
+----+---------+--------+
| 1 | 1 | 2 |
+----+---------+--------+
1 row in set (0.00 sec)
จะ จะ จะ ว่า เห็น เรา 삽입 แบบ เดิม เดิม อีก ครับ ครับ mysql จะ เช็ค 고유 키 ว่า มี มี มี แล้ว หรือ ยัง ถ้า มี แล้ว แล้ว จะ เลือก ส่วน 업데이트 คือ 숫자 = 번호+1 ให้ เรา เอง เอง
Race เรื่อง เรื่อง นี้ นี้ เรา ไม่ ต้อง จัด การ เรื่อง 경주 조건 ใน การ การ เพิ่ม ค่า ของ ของ ของ เอง เอง เอง ถ้า ถ้า ถ้า คน กัน สั่ง สร้าง สร้าง in 송장 번호 พร้อม ๆ กัน เพราะ เพราะ mysql จัด เรื่อง เรื่อง 일관성 ของ ข้อมูล ให้ ให้ เรา เอง อยู่ แล้ว แล้ว
Reference
이 문제에 관하여(ใช้ MYSQL สร้าง 실행 번호), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iporsut/mysql-running-number-43l0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)