|
|
|
กลัวครับ ผมเป็นคนคิดมาก ไม่ทราบว่าพี่ๆเคยเจอปัญหาแบบนี้ไหม ขอความคิดเห็นหน่อยครับ |
|
|
|
|
|
|
|
ทำแบบนั้นโอกาสซ้ำซ้อนของข้อมูลก็มีนะครับ แต่หากทำเป็น Auto ID หรือ LAST_INSERT_ID() ไม่มีแน่นอน
last-insert-id-mysql
|
|
|
|
|
Date :
2014-11-23 21:31:24 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ผมใช้ CODE ในการ auto id แบบนี้ จะได้เป็น
2014A000000001
2014A000000002
2014A000000003
2014A000000004
ถ้าแบบนี้มีโอกาศ error ไหมครับพี่ สมมุติคนกดประกาศพร้อมกัน 10 คน ถ้า error ผมจะได้ไปใช้ LAST_INSERT_ID() MySQL แบบที่พี่แนะนำขอบคุณครับ มือใหม่ อยากมีเว็บไซต์เป็นของตัวเองครับ
Code (PHP)
$id = mysql_result(mysql_query("Select Max(substr(id,-9))+1 as MaxID from table"),0,"MaxID");
$date_id = date("Y");
if(id == ''){
id = "$date_id"."A000000001";
}else{
id = "$date_id"."V".sprintf("%09d",$ifv_id);
}
|
ประวัติการแก้ไข 2014-11-23 22:10:27
|
|
|
|
Date :
2014-11-23 22:09:14 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No2 บอกแล้วไงว่ามีโอกาสซ้ำ ทำไมโง่จังวะไอ้เหี้ย
|
|
|
|
|
Date :
2014-11-23 22:18:03 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใจเย็นๆครับผม ค่อยๆคุยกัน ลองดูนะครับ เราแก้ไขได้โดยเรียกใช้ Query เอา AUTO_INCREMENT มาใช้ ทีนี้เราปรับแก้นิดเดียว ไปตั้ง ฟิลด์ เพื่อใช้รัน ID แบบ Auto INC ครับ
Code (SQL)
SELECT AUTO_INCREMENT FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'my_database'
AND TABLE_NAME = 'my_table_name';
หรือจะทำแบบนี้ครับ ปรับแก้จาก mysqli เป็น mysql
http://www.w3schools.com/php/func_mysqli_insert_id.asp
|
|
|
|
|
Date :
2014-11-23 22:57:06 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับพี่ ผมก็ไม่สามารถตั้งชื่อ id ผสมกับตัวอักษรได้อะสิ
2014A000000001
2014A000000002
2014A000000003
2014A000000004
ขอบคุณครับพี่ที่ให้คำแนะนำ
|
|
|
|
|
Date :
2014-11-23 23:07:04 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ครับไม่ได้ให้แก้อันเดิม ให้เพิ่มใหม่ครับ เป็น PK และ เป็น Auto INC
|
|
|
|
|
Date :
2014-11-23 23:09:56 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อแบบนี้ป่าวครับพี่
ตารางบันทึกเดิมเป็นแบบนี้
id vachar 10 pk
item1 vachar 10
item2 vachar 10
item3 vachar 10
item4 vachar 10
item5 vachar 10
เพิ่ม pk ไปอีกตัวจะเป็นตารางแบบนี้
id_new int 10 pk Auto INC
id vachar 10 pk
item1 vachar 10
item2 vachar 10
item3 vachar 10
item4 vachar 10
item5 vachar 10
เวลาจะบันทึกลงเบสก็ให้เช็คตัวล่าสุดด้วยฟังชั่นที่พี่บอก id_new ส่วน id ก็ปกติ 2014A0000001 ใช่ไหมครับพี่
|
ประวัติการแก้ไข 2014-11-23 23:22:33 2014-11-23 23:23:31 2014-11-23 23:25:23 2014-11-23 23:26:35
|
|
|
|
Date :
2014-11-23 23:21:15 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผม ใช่ครับ
|
|
|
|
|
Date :
2014-11-23 23:25:32 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณมากๆเลยครับพี่
คือผมต้องการทำเว็บไซต์ประกาศสักอย่างหนึ่ง แล้วคนเข้าเยอะมาก แล้วก็กลัวว่าถ้าผู้ใช้งานทะลึ่งกดประกาศพร้อมกัน กลัวจะเกิดปัญหาตอนบันทึกลงเบส
ขอบคุณอีกครั้งครับสำหรับวิธีและคำแนะนำครับพี่
โดยการเพิ่ม pk ขึ้นมาอีกหนึ่งตัว แล้วก็ใช้ฟังชั่น last-insert-id-mysql ส่วน pk เดิมก็เช็ค+1 ไปปกติ แค่เอาตัว pk ที่สร้างมาใหม่เป็นตัวเช็คลำดับผู้ใช้งานที่ทะลึ่งกดลงประกาศพร้อมกัน
ผมกดให้คะแนนแล้วนะครับพี่
|
ประวัติการแก้ไข 2014-11-23 23:32:52
|
|
|
|
Date :
2014-11-23 23:31:13 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับขอนิดเดียวครับ code ที่พี่ให้มา ผม งง อะครับ ให้ผมดึงข้อมูลอะไรหรอครับ
SELECT AUTO_INCREMENT FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'my_database'
AND TABLE_NAME = 'my_table_name';
|
|
|
|
|
Date :
2014-11-23 23:39:05 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับพี่ๆทุกคำตอบ
เมื่อผมได้รับโอกาศ ผมก็จะให้โอกาศคนต่อ ครับ
|
ประวัติการแก้ไข 2014-11-24 20:30:23
|
|
|
|
Date :
2014-11-24 20:29:57 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก #NO 13 ถ้าคุณเป็นคนที่คิดมากดังที่คุณกล่าวอ้างจริง มันก็เป็นสิ่งที่ดี
ผมเพิ่มเติมให้อีกนิดหนึ่งคือ "ความละเอียดรอบคอบ ก็ควรจะทำให้เป็นนิสัย" ครับแต่ไม่ใช่คับ (คำนี้หมายถึงว่าคับแคบ)
--- ในบางกรณีอาจจำเป็นต้องล๊อคระเบียน (Rows Lock) ?
--- ในบางกรณีอาจจำเป็นต้องล๊อคไฟล์ (File Lock) ?
--- จำเป็นต้องมี PK (Primary key) หรือไม่? อันนี้ลองคิดเอาเองครับ (Compound Index เช่น System + Prefix)
--- อีกเยอะเลยครับ คิดเอาเอง (ผมไม่สะดวกที่จะอธิบายได้ครบในทุกกรณี)
สำหรับคนที่มีจิตใจคับแคบที่คิดจะเดินทาง สมมุติว่าต้องการเดินทางไปจ. เชียงใหม่ ก็แล้วกัน
--- เตรียมจักรยานให้ ก็เรียกร้องจะเอาจักรยานยนต์
--- เตรียมจักรยานยนต์ให้ ก็เรียกร้องจะเอารถยนต์
--- เตรียมรถยนต์ปิคอัพให้ ก็เรียกร้องเอารถยนต์หรูระดับ รถยุโรป
------- มีเหมือนกันแหละคนที่คิดจะเดินด้วยเท้ารอบโลก ที่ให้ไปมันยังไม่ไกลพอ(คนที่ไม่คับแคบ)
ปล. เล่าเรื่องจริงให้ฟังครับ 2014-11-26
คีย์บอร์ดไม่ค่อยได้จับ ตอนนี้ผมหันมาจับงาน "โฟร์แมน" ควบคุมงานก่อสร้าง เดี๋ยวเย็นนี้มาเล่าต่อ
ปล 2 ชีวิตจริงของผมมีเรื่องเล่ามากกว่า อธิการบดีทุกฯมหาวิทยาลัย ก็แล้วกันครับ (ในทุกฯเรื่อง)
อย่างน้อยฯถ้ายังมองภาพไม่ออก "เรื่องชั่วฯ ผมก็มีเรื่องเล่าและมันเป็นเรื่องจริงของผมด้วย (ชีวิตจริง)"
|
ประวัติการแก้ไข 2014-11-26 08:38:39 2014-11-26 08:46:34 2014-11-26 08:53:09 2014-11-26 08:54:06 2014-11-26 08:54:55 2014-11-26 08:57:24 2014-11-26 08:58:48
|
|
|
|
Date :
2014-11-26 08:37:23 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับพี่ - -
|
|
|
|
|
Date :
2014-11-26 22:16:47 |
By :
copyringht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|