คำถามติดแท็ก unique-constraint

Unique-constraint คือดัชนีที่กำหนดให้ฟิลด์หนึ่งหรือหลายฟิลด์ไม่ซ้ำกันในเอนทิตีข้อมูล

13
ฉันจะระบุข้อ จำกัด เฉพาะสำหรับหลายคอลัมน์ใน MySQL ได้อย่างไร
ฉันมีโต๊ะ: table votes ( id, user, email, address, primary key(id), ); ตอนนี้ฉันต้องการทำให้คอลัมน์ผู้ใช้อีเมลที่อยู่ไม่ซ้ำกัน (รวมกัน) ฉันจะทำสิ่งนี้ใน MySql ได้อย่างไร แน่นอนตัวอย่างเป็นเพียง ... ตัวอย่าง ดังนั้นโปรดอย่ากังวลเกี่ยวกับความหมาย

4
ฉันสามารถเพิ่มข้อ จำกัด UNIQUE ลงในตาราง PostgreSQL หลังจากสร้างเสร็จแล้วได้หรือไม่
ฉันมีตารางต่อไปนี้: tickername | tickerbbname | tickertype ------------+---------------+------------ USDZAR | USDZAR Curncy | C EURCZK | EURCZK Curncy | C EURPLN | EURPLN Curncy | C USDBRL | USDBRL Curncy | C USDTRY | USDTRY Curncy | C EURHUF | EURHUF Curncy | C USDRUB | USDRUB Curncy | C ฉันไม่ต้องการที่จะมีมากกว่าหนึ่งคอลัมน์สำหรับคู่tickername/ …

4
ข้อ จำกัด ของตาราง SQLite - ไม่ซ้ำกันในหลายคอลัมน์
ฉันสามารถหา "ชาร์ต" ไวยากรณ์บนเว็บไซต์ SQLite แต่ไม่มีตัวอย่างและรหัสของฉันล้มเหลว ฉันมีตารางอื่นที่มีข้อ จำกัด ที่ไม่ซ้ำกันในคอลัมน์เดียว แต่ฉันต้องการเพิ่มข้อ จำกัด ในตารางในสองคอลัมน์ นี่คือสิ่งที่ฉันมีที่ทำให้ SQLiteException พร้อมข้อความ "ข้อผิดพลาดทางไวยากรณ์" CREATE TABLE name (column defs) UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE ฉันทำสิ่งนี้ตามสิ่งต่อไปนี้: ตาราง จำกัด เพื่อความชัดเจนเอกสารในลิงก์ที่ฉันระบุบอกว่าCONTSTRAINT nameควรมาก่อนคำจำกัดความของฉัน สิ่งที่อาจนำไปสู่การแก้ปัญหา แต่ก็คือสิ่งใดก็ตามที่เป็นไปตามคำจำกัดความของคอลัมน์ที่ฉันใส่วงเล็บคือสิ่งที่ดีบักเกอร์บ่น ถ้าฉันใส่ ...last_column_name last_col_datatype) CONSTRAINT ... ข้อผิดพลาดอยู่ใกล้กับ "CONSTRAINT": ข้อผิดพลาดทางไวยากรณ์ ถ้าฉันใส่ ...last_column_name last_col_datatype) UNIQUE ... ข้อผิดพลาดอยู่ใกล้กับ "UNIQUE": ข้อผิดพลาดทางไวยากรณ์

8
@UniqueConstraint คำอธิบายประกอบใน Java
ฉันมี Java bean ตอนนี้ฉันต้องการแน่ใจว่าฟิลด์ควรไม่ซ้ำกัน ฉันกำลังใช้รหัสต่อไปนี้: @UniqueConstraint(columnNames={"username"}) public String username; แต่ฉันได้รับข้อผิดพลาด: @UniqueConstraint is dissallowed for this location วิธีที่เหมาะสมในการใช้ข้อ จำกัด ที่ไม่ซ้ำกันคืออะไร หมายเหตุ:ฉันใช้กรอบการเล่น

3
ฉันจะแก้ไขตาราง PostgreSQL และสร้างคอลัมน์ที่ไม่ซ้ำได้อย่างไร
ฉันมีตารางใน PostgreSQL ซึ่ง schema มีลักษณะดังนี้: CREATE TABLE "foo_table" ( "id" serial NOT NULL PRIMARY KEY, "permalink" varchar(200) NOT NULL, "text" varchar(512) NOT NULL, "timestamp" timestamp with time zone NOT NULL ) ตอนนี้ฉันต้องการทำให้ลิงก์ถาวรที่ไม่ซ้ำกันทั่วทั้งตารางโดยการเปลี่ยนแปลงตาราง ใครช่วยฉันได้ไหม TIA

7
MySQL - สร้างฟิลด์ที่ไม่ซ้ำใคร
ฉันมีตารางที่มีอยู่แล้วพร้อมกับเขตข้อมูลที่ควรไม่ซ้ำกัน แต่ไม่ใช่ ฉันรู้เรื่องนี้เพียงเพราะมีการป้อนข้อมูลลงในตารางที่มีค่าเหมือนกันกับรายการอื่นที่มีอยู่แล้วรายการและสิ่งนี้ทำให้เกิดปัญหา ฉันจะทำให้ฟิลด์นี้ยอมรับค่าที่ไม่ซ้ำได้อย่างไร

3
หลักการตั้งชื่อสำหรับข้อ จำกัด เฉพาะ
หลักการตั้งชื่อมีความสำคัญและคีย์หลักและคีย์ต่างประเทศมีการใช้กันทั่วไปและมีแบบแผนชัดเจน ( PK_TableและFK_Table_ReferencedTableตามลำดับ) การIX_Table_Columnตั้งชื่อดัชนียังเป็นมาตรฐานที่เป็นธรรม สิ่งที่เกี่ยวกับข้อ จำกัด UNIQUE? มีหลักการตั้งชื่อที่ยอมรับกันทั่วไปสำหรับข้อ จำกัด นี้หรือไม่? ผมเคยเห็นUK_TableName_Column, UQ_TableName_ColumnและคนแนะนำAX_TableName_Column- ฉันไม่ทราบว่ามาจาก ฉันมักจะใช้UQแต่ฉันไม่ชอบมันเป็นพิเศษและฉันไม่ชอบที่จะปกป้องการเลือกใช้มันกับUKผู้สนับสนุน ฉันแค่อยากจะดูว่ามีความเห็นตรงกันในการตั้งชื่อที่แพร่หลายมากที่สุดหรือไม่หรือเหตุผลที่ดีว่าเหตุใดจึงมีเหตุผลมากกว่าข้ออื่น ๆ

19
ข้อ จำกัด เฉพาะในรหัสกรอบงานเอนทิตีก่อน
คำถาม เป็นไปได้ไหมที่จะกำหนดข้อ จำกัด เฉพาะในคุณสมบัติโดยใช้ไวยากรณ์ที่คล่องแคล่วหรือแอตทริบิวต์ ถ้าไม่วิธีแก้ปัญหาคืออะไร? ฉันมีคลาสผู้ใช้ที่มีคีย์หลัก แต่ฉันต้องการให้แน่ใจว่าที่อยู่อีเมลนั้นไม่ซ้ำกัน สามารถทำได้โดยไม่ต้องแก้ไขฐานข้อมูลโดยตรงหรือไม่? วิธีแก้ปัญหา (ตามคำตอบของ Matt) public class MyContext : DbContext { public DbSet<User> Users { get; set; } public override int SaveChanges() { foreach (var item in ChangeTracker.Entries<IModel>()) item.Entity.Modified = DateTime.Now; return base.SaveChanges(); } public class Initializer : IDatabaseInitializer<MyContext> { public void InitializeDatabase(MyContext context) …

2
Postgresql: ข้อ จำกัด ที่ไม่ซ้ำกันตามเงื่อนไข
ฉันต้องการเพิ่มข้อ จำกัด ที่บังคับใช้ความเป็นเอกลักษณ์ในคอลัมน์ในส่วนหนึ่งของตารางเท่านั้น ALTER TABLE stop ADD CONSTRAINT myc UNIQUE (col_a) WHERE (col_b is null); WHEREส่วนข้างต้นเป็นคิดนึก วิธีใดในการทำเช่นนี้ หรือฉันควรกลับไปที่กระดานวาดภาพเชิงสัมพันธ์?

4
ฉันจะสร้างข้อ จำกัด เฉพาะบนคอลัมน์ของฉัน (SQL Server 2008 R2) ได้อย่างไร
ฉันมี SQL Server 2008 R2 และต้องการตั้งค่าคอลัมน์เฉพาะ ดูเหมือนจะมีสองวิธีในการดำเนินการนี้: "ดัชนีเฉพาะ" และ "ข้อ จำกัด เฉพาะ" ไม่แตกต่างจากที่ฉันเข้าใจมากนักแม้ว่าส่วนใหญ่จะแนะนำข้อ จำกัด เฉพาะเนื่องจากคุณจะได้รับดัชนีโดยอัตโนมัติ ฉันจะสร้างข้อ จำกัด เฉพาะได้อย่างไร ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name) มีวิธีสร้างข้อ จำกัด เฉพาะผ่าน SQL Server Management Studio หรือไม่

16
จะลบรายการที่ซ้ำกันได้อย่างไร?
ฉันต้องเพิ่มข้อ จำกัด เฉพาะให้กับตารางที่มีอยู่ ใช้ได้ดียกเว้นว่าตารางมีแถวเป็นล้านแถวแล้วและหลายแถวละเมิดข้อ จำกัด เฉพาะที่ฉันต้องเพิ่ม วิธีที่เร็วที่สุดในการลบแถวที่กระทำผิดคืออะไร ฉันมีคำสั่ง SQL ซึ่งค้นหารายการที่ซ้ำกันและลบออก แต่ต้องใช้เวลาตลอดไปในการรัน มีวิธีอื่นในการแก้ปัญหานี้หรือไม่? อาจจะสำรองตารางแล้วกู้คืนหลังจากเพิ่มข้อ จำกัด ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.