คำถามติดแท็ก sequence

วัตถุที่สามารถสร้างจำนวนเต็มเฉพาะ

9
ฉันจะใช้ currval () ใน PostgreSQL เพื่อรับรหัสที่แทรกล่าสุดได้อย่างไร
ฉันมีโต๊ะ: CREATE TABLE names (id serial, name varchar(20)) ฉันต้องการ "id ที่แทรกล่าสุด" จากตารางนั้นโดยไม่ต้องใช้การRETURNING idแทรก ดูเหมือนจะมีฟังก์ชั่นCURRVAL()แต่ฉันไม่เข้าใจวิธีการใช้งาน ฉันได้ลองกับ: SELECT CURRVAL() AS id FROM names_id_seq SELECT CURRVAL('names_id_seq') SELECT CURRVAL('names_id_seq'::regclass) แต่ไม่มีใครทำงาน ฉันcurrval()จะใช้เพื่อรับ id ที่แทรกล่าสุดได้อย่างไร

2
เหตุใดลำดับ Denali จึงควรทำงานได้ดีกว่าคอลัมน์ข้อมูลประจำตัว
ในคำตอบของเขาที่จะดีกว่า: คอลัมน์ข้อมูลประจำตัวหรือสร้างค่ารหัสที่ไม่ซ้ำกัน? mrdenny พูดว่า: เมื่อ SQL Denali ออกมามันจะสนับสนุนลำดับซึ่งจะมีประสิทธิภาพมากกว่าเอกลักษณ์ แต่คุณไม่สามารถสร้างสิ่งที่มีประสิทธิภาพมากขึ้นด้วยตัวคุณเอง ผมไม่แน่ใจ. เมื่อทราบลำดับของ Oracle ฉันต้องสร้างทริกเกอร์สำหรับแทรกใส่แค็ปซูลแต่ละอันไว้ในการเรียกโพรซีเดอร์ที่เก็บไว้หรือภาวนาว่าฉันไม่ลืมที่จะใช้ลำดับเมื่อฉันแทรกโฆษณาแบบเฉพาะกิจ ฉันสงสัยว่าข้อดีของลำดับนั้นชัดเจนมาก

1
ลำดับ - ไม่มีแคชเทียบกับ CACHE 1
มีความแตกต่างระหว่างการSEQUENCEประกาศใช้NO CACHEและประกาศใช้CACHE 1ใน SQL Server 2012+? ลำดับ # 1: CREATE SEQUENCE dbo.MySeqCache1 AS INT START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999 NO CYCLE CACHE 1; GO ลำดับ # 2: CREATE SEQUENCE dbo.MySeqNoCache AS INT START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999 NO CYCLE NO …

2
วิธีการสร้างลำดับใน mysql
พิจารณาตารางนี้ใน mysql create table numbers (number int); insert into numbers values (3), (2), (9); select * from numbers; +--------+ | number | +--------+ | 3 | | 2 | | 9 | +--------+ มีแบบสอบถามง่ายๆในการสร้างตารางที่มีคอลัมน์ต่อไปนี้ ตัวเลขตั้งแต่ 1 ถึง 10 1 ถ้าหมายเลขอยู่ในหมายเลขตารางและ 0 เป็นอย่างอื่น ฉันเดาว่าคุณต้องสร้างลำดับของตัวเลขเพื่อที่จะทำสิ่งนี้ ถ้าเป็นไปได้ฉันต้องการสร้างลำดับดังกล่าวโดยไม่เก็บไว้ในฐานข้อมูล คำถามที่เกี่ยวข้อง: มีแบบสอบถามแบบใช้เลือกข้อมูลที่สร้างลำดับของตัวเลขตั้งแต่ 1 ถึง 10 (หรือ …
19 mysql  sequence 

1
การแก้ไขโครงสร้างตารางเพื่อหลีกเลี่ยง `ข้อผิดพลาด: ค่าคีย์ที่ซ้ำกันละเมิดข้อ จำกัด ที่ไม่ซ้ำกัน '
ฉันมีตารางที่สร้างขึ้นด้วยวิธีนี้: -- -- Table: #__content -- CREATE TABLE "jos_content" ( "id" serial NOT NULL, "asset_id" bigint DEFAULT 0 NOT NULL, ... "xreference" varchar(50) DEFAULT '' NOT NULL, PRIMARY KEY ("id") ); ต่อมาบางแถวจะถูกแทรกโดยระบุรหัส: INSERT INTO "jos_content" VALUES (1,36,'About',...) ที่จุดภายหลังบางระเบียนจะถูกแทรกโดยไม่ต้อง ID Error: duplicate key value violates unique constraintและพวกเขาล้มเหลวกับข้อผิดพลาด: เห็นได้ชัดว่า id ได้รับการกำหนดเป็นลำดับ: การแทรกที่ล้มเหลวแต่ละครั้งจะเพิ่มตัวชี้ในลำดับจนกระทั่งมันเพิ่มขึ้นเป็นค่าที่ไม่มีอยู่อีกต่อไปและการสืบค้นสำเร็จ …

2
การรีเซ็ตลำดับของ SQL Server 2012
ฉันกำลังอยู่ระหว่างการทดสอบและสร้างตารางเฉพาะที่ใช้ประโยชน์จากSEQUENCEวัตถุ ในกระบวนการนี้ฉันกำลังทดสอบการเติมตารางด้วยจำนวนบรรทัดการแทรกนับหมื่น (เนื่องจากฉันไม่คุ้นเคยกับวิธีการตั้งโปรแกรมนี้) ปัญหาที่ฉันเห็นด้วยตารางนี้คือเมื่อฉันเริ่มการทดสอบประชากรอื่นการSEQUENCEตั้งค่าไม่ได้กลับไปเป็นหมายเลขแรกที่ฉันต้องการ (ซึ่งคือ 1) เมื่อฉันต้องการเรียกใช้การทดสอบใหม่อีกครั้งฉันจะลบตารางที่เป็นปัญหาแล้วจึงเรียกใช้สิ่งต่อไปนี้: DROP SEQUENCE foo.fee; GO DROP SCHEMA foo; GO เมื่อฉันต้องการเรียกใช้การทดสอบอีกครั้งฉันใช้คำสั่งSCHEMA& SEQUENCEคำสั่งต่อไปนี้ซึ่งเรียกใช้ตามลำดับด้านล่าง: CREATE SCHEMA foo; GO CREATE SEQUENCE foo.fee START WITH 1 INCREMENT BY 1 NO CYCLE NO CACHE; GO ฉันสร้างตารางแล้ว: CREATE TABLE foo.sample_table_with_data (order_number bigint PRIMARY KEY NOT NULL, sample_column_one nvarchar(max) NULL, sample_column_two nvarchar(max) …

1
ลำดับกำลังใช้ซ้ำ
ฉันมีลำดับที่สร้างหมายเลขการติดตามสำหรับวัตถุในระบบของฉัน มันใช้งานได้ดีมาระยะหนึ่งแล้ว สัปดาห์ที่แล้วเราสังเกตเห็นว่ามันเริ่มที่จะใช้ค่าอีกครั้ง สิ่งที่น่าจะเกิดขึ้นก็คือในช่วงเย็นที่ต่างกันมันจะย้อนกลับไปสู่ค่าที่เคยมีเมื่อวันก่อน จากนั้นจะสร้างค่าต่อไปจากจุดนั้น ตัวอย่างเช่นฉันจะได้อะไรแบบนี้ 10112 10113 10114 10115 10116 10117 10118 10113 10114 10115 10116 ... ดูเหมือนว่าจะไม่มีรูปแบบใด ๆ เกิดขึ้นระยะเวลาระหว่างการใช้งานครั้งแรกกับการใช้ครั้งที่สอง (น้อยที่สุดเท่าที่ 10 นาทีหรือหลายชั่วโมง) หรือมีการย้อนกลับกี่ครั้ง ฉันคิดเกี่ยวกับการใช้งานการติดตาม (และยังอาจ) แต่ฉันไม่คิดว่าวัตถุลำดับจะถูกแก้ไขโดยตรง เหตุผลที่ฉันเชื่อว่านี่คือวันที่แก้ไขนั้นมีอายุหลายวันและชี้ไปที่เวลาที่เราชนค่าด้วยตนเองเพื่อลองและกำจัดรายการที่ซ้ำกัน (และปัญหาเกิดขึ้นหลายครั้งตั้งแต่นั้นมา) ไม่มีใครมีความคิดในสิ่งที่อาจทำให้เกิดการย้อนกลับลำดับและนำค่ากลับมาใช้ในแต่ละคืน? ปรับปรุง: เพื่อตอบคำถามสองสามข้อในความคิดเห็น: @@Version: Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 19 ตุลาคม 2555 13:38:57 น สร้างสคริปต์: CREATE SEQUENCE …

3
sequence.nextval เป็นอย่างไรใน Oracle
ฉันมีลำดับ Oracle ที่กำหนดดังนี้: CREATE SEQUENCE "DALLAS"."X_SEQ" MINVALUE 0 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 0 NOCACHE NOORDER NOCYCLE ; มันถูกใช้ในขั้นตอนการจัดเก็บเพื่อแทรกบันทึก: PROCEDURE Insert_Record (p_name IN VARCHAR2, p_userid IN INTEGER, cur_out OUT TYPES_PKG.RefCursor) IS v_id NUMBER := 0; BEGIN -- Get id value from sequence SELECT x_seq.nextval INTO v_id FROM dual; …
11 oracle  sequence 

3
ฉันจะสร้างตารางด้วยคอลัมน์ที่ใช้ลำดับได้อย่างไร
ฉันมีดังต่อไปนี้ CREATE TABLE [MyTable] ( [ID] [bigint] PRIMARY KEY NOT NULL, [Title] [nvarchar](64) NOT NULL ) CREATE SEQUENCE MyTableID START WITH 1 INCREMENT BY 1 NO CACHE ; GO ฉันต้องการแทรกระเบียนใหม่ใน MyTable และตั้งค่า ID เป็นค่าลำดับถัดไป ฉันจะทำมันได้อย่างไร อาจจะเป็นทริกเกอร์หรือมีวิธีอื่นอีกไหม? อย่างไร? ขณะที่ผมกำลังใช้ SQL Server 2012, ฉันไม่ต้องการที่จะใช้บัตรประจำตัวเนื่องจากมีปัญหาช่องว่าง

1
วิธีที่มีประสิทธิภาพที่สุดในการเพิ่มคอลัมน์อนุกรมลงในตารางขนาดใหญ่
อะไรที่เร็วที่สุดวิธีการเพิ่มคอลัมน์ BIGSERIAL ไปยังตารางขนาดใหญ่ (~ 3 Bil. แถว ~ 174Gb)? แก้ไข: ฉันต้องการให้คอลัมน์เป็นค่าที่เพิ่มขึ้นสำหรับแถวที่มีอยู่ ( NOT NULL) ฉันไม่ได้ตั้งสารเติม (ซึ่งดูเหมือนว่าจะเป็นการตัดสินใจที่ไม่ดีในการหวนกลับ) ฉันไม่มีปัญหาเกี่ยวกับพื้นที่ดิสก์เพียงต้องการให้เร็วที่สุดเท่าที่จะเป็นไปได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.