มีวิีธี add ฐานข้อมูลยังไงไม่ให้มันซ้ำอะ ใน mysql

เริ่มโดย iamnewbies, 07 เมษายน 2007, 23:49:22

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

iamnewbies

กำลังลองทำ mysql ทำ database ของ keyword รวม  เพิ่งสมัคร wordtracker  1 เดือน แล้วเอามาใส่

มีวิธียังไงที่จะ add ลงไปไม่ให้มันซ้ำนะ

เพราะลองทำแล้ว มันก็ run recoard ที่บันทึกไปเรื่อยๆ แต่มันซ้ำนี่สิ
ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ

Tee++;

เอา Field ที่จะไม่ให้ซ้ำตั้งเป็น unique แล้วตอน insert ใช้คำสั่ง ignore ลงไปเพื่อไม่ให้ Error

insert ignore into table ....

หรือ ถ้าจะให้ข้อมูลใหม่ลงใช้คำสั่ง

replace into table ....
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


tony

อ้างถึงจาก: Tee++;เอา Field ที่จะไม่ให้ซ้ำตั้งเป็น unique แล้วตอน insert ใช้คำสั่ง ignore ลงไปเพื่อไม่ให้ Error

insert ignore into table ....

หรือ ถ้าจะให้ข้อมูลใหม่ลงใช้คำสั่ง

replace into table ....

เก่งจัง  :P
ไม่ค่อยว่างมาดูเท่าไร แต่หัวใจยังกิ๊ดตึ๋ง

iamnewbies

อ้างถึงจาก: Tee++;เอา Field ที่จะไม่ให้ซ้ำตั้งเป็น unique แล้วตอน insert ใช้คำสั่ง ignore ลงไปเพื่อไม่ให้ Error

insert ignore into table ....

หรือ ถ้าจะให้ข้อมูลใหม่ลงใช้คำสั่ง

replace into table ....


ขอบคุณครับ

จาลองทำดู

ผมมือใหม่ mysql  


I am newbies mysql
ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ

ColdMoney

อิอิ เก่งจัง ถ้าเป็นผม ก็คงเช็คก่อนอ่ะว่ามีข้อมูลอยู่อ่ะป่าว ถ้าซ้ำก็ไม่เขียนลงไป  :lol:  :lol:
[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

Tee++;

[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


EThaiZone

ไม่เคยรู้วิธีนี้เลย

ผมมักจะทำแต่

ทำ index เป็น auto increase

แต่ค่าอินเด็กก็ไม่ส่งไป มันนยัดให้เองอะไรแบบนั้น *-*

iamnewbies

อันแรก ทำเป็น auto increase อยู่แล้วครับ เพราะเป็น index

ใน table มีแค่ 2 แถว

แค่ id = เป็น auto increase  ใช้ทำเป้น index

และก็ อีกอันเป็น ข้อมูล data
ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ

iamnewbies

อ้างถึงจาก: Tee++;เอา Field ที่จะไม่ให้ซ้ำตั้งเป็น unique แล้วตอน insert ใช้คำสั่ง ignore ลงไปเพื่อไม่ให้ Error

insert ignore into table ....

หรือ ถ้าจะให้ข้อมูลใหม่ลงใช้คำสั่ง

replace into table ....


ใช้ได้ผลครับ

ผมใช้อันนี้

insert ignore into table ....


กว่าจะทำได้ error เพียบเลย

มั่วๆๆ เอา

mysql เจ้งไปหลายรอบแ้ล้ว เพราะเขียนโปรแกรมวนลูป จนมันไม่หยุด 5555
ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ

Tee++;

จริงๆ การจัดการข้อมูลที่ซ้ำซ้อนยังมีอีกหลายวิธี อีก วิธีที่ผมว่า Work More คือการ Add ข้อมูลลงใน Table ทั้งหมด ยังไม่ต้องสนข้อมูลซ้ำ จากนั้นสร้างตาราง Temporary ขึ้นมาเช่นแล้วเอาข้อมูลมายัดลงไปแบบนี้

CREATE TABLE Temporary SELECT DISTINCT * FROM Oldtable

จากนั้นก็ลบตาราง Oldtable แล้วแก้ชื่อตาราง Temporary ซะ

ALTER TABLE Temporary RENAME Oldtable

MySQL จริงๆ มีลูกเล่นเพียบเลยนะ เป็น Database ที่ดีใช้ได้ไม่น้อยน่า Oracle เลยทีเดียว จะเสียตรงเรื่องการจัดการข้อมูลเยอะนี่แหละที่สู้ไม่ได้
:P
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


myong1

ตัว php ผมไม่รู้นะครับ

ถ้าเป็น .net มี error แล้วข้ามไป กับเช็คโดยใช้ select clause

ใช้ select เช็คจะเร็วกว่าครับ ยิ่งถ้าปรับ field ให้มี index ด้วยจะเร็วกว่าแน่นอนครับ

แต่ถ้าไม่ได้ช้าอะไรมากมาย ก็ไม่ต้องซีเรียสครับ

ploiro

แหะๆผ่านมาอ่านเจอกาทู้นี้ ได้ความรู้ดีๆเลย

ขอบคุณ คุน Tee++ มากนะ

ผมเซฟเกบไว้เปนความรู้แระ

แต่สำหรับผม

เวลาป้องกันข้อมูลซ้ำกัน

แบบผมทำเวบอัพโหลด

ก็จะใช้การนำไอดีมาต่อหน้าชื่อไฟล์เดิมซะ

แบบว่า

$sql="Insert อะไรก้อว่าไป";
$r=mysql_query($sql);
$d=mysql_insert_id();

แล้วก้อนำมันมารวมเปนชื่อใหม่ซะ

$filename2="$id$filename";

แล้วค่อยอัพเดทมันอีกที

แหะๆ
[direct=http://www.buyiphonetoday.com/]buy iphone[/direct]

[direct=http://www.sorndesign.com]สอนออกแบบ[/direct]
[direct=http://www.trendmestyle.com]แฟชั่นวัยรุ่น แฟชั่นอินเทรนด์ เสื้อผ้าวัยรุ่น เสื้อผ้าแฟชั่น [/direct]

[direct=http://www.outdoormistingfan.org]outdoor misting fan[/direct]