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

คำสั่งหลักใน SQL ที่ทำตามที่กล่าวไว้ในกระป๋อง: แทรกข้อมูลลงในตาราง

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
คีย์ที่ซ้ำกันไม่ทำอะไรเลย
ฉันกำลังแทรกลงในตารางต่อไปนี้โดยใช้ LuaSQL กับ PtokaX API CREATE TABLE `requests` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `ctg` VARCHAR(15) NOT NULL, `msg` VARCHAR(250) NOT NULL, `nick` VARCHAR(32) NOT NULL, `filled` ENUM('Y','N') NOT NULL DEFAULT 'N', `dated` DATETIME NOT NULL, `filldate` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `nick_msg` (`nick`, `msg`), …

4
ความคืบหน้าของคำสั่ง SELECT INTO
โฟลว์ ETL ของเรามีคำสั่ง SELECT INTO ที่ดำเนินมายาวนานซึ่งสร้างตารางได้ทันทีและเติมข้อมูลด้วยหลายร้อยล้านเรคคอร์ด คำสั่งมีลักษณะเหมือน SELECT ... INTO DestTable FROM SrcTable เพื่อจุดประสงค์ในการตรวจสอบเราต้องการทราบคร่าวๆเกี่ยวกับความคืบหน้าของคำสั่งนี้ในขณะที่มันกำลังดำเนินการ (ประมาณ rowcount จำนวนไบต์ที่เขียนหรือคล้ายกัน) เราได้ลองทำสิ่งต่อไปนี้โดยไม่มีประโยชน์: -- Is blocked by the SELECT INTO statement: select count(*) from DestTable with (nolock) -- Returns 0, 0: select rows, rowmodctr from sysindexes with (nolock) where id = object_id('DestTable') -- Returns 0: …

1
ปรับ PostgreSQL ให้เหมาะสมที่สุดสำหรับการปรับปรุง INSERTS และ bytea มากมาย
สิ่งที่เรามี (ซอฟต์แวร์): PostrgeSQL 9.3พร้อมการกำหนดค่าพื้นฐาน (ไม่มีการเปลี่ยนแปลงpostgresql.conf) Windows 7 64 บิต ฮาร์ดแวร์: Intel Core i7-3770 3.9 Ghz RAM 32 Gb WDC WD10EZRX-00L4HBAta ไดรฟ์ (1000Gb, SATA III) ดังนั้นเราต้องโหลดลงใน DB aprox 100.000.000แถวที่มีbyteaคอลัมน์และง่ายขึ้น500.000.000แถว (โดยไม่ LOBs) มี 2 varcharดัชนีในตารางที่ 1 (ความยาว 13, 19) และ 2 varcharดัชนีในตารางที่ 2 (18, 10 ความยาว) นอกจากนี้ยังมีลำดับสำหรับการสร้าง id สำหรับแต่ละตาราง ในตอนนี้การดำเนินการเหล่านี้กำลังทำอยู่กับการเชื่อมต่อ 8 แบบขนานกับขนาดแบตช์ …

3
การประเมินความผิดปกติที่ไม่ดีทำให้ขาดคุณสมบัติ INSERT จากการบันทึกที่น้อยที่สุด?
ทำไมข้อความที่สองINSERT~ 5x ช้ากว่าประโยคแรก จากจำนวนข้อมูลบันทึกที่สร้างขึ้นฉันคิดว่าข้อมูลที่สองไม่ผ่านการรับรองสำหรับการบันทึกขั้นต่ำ อย่างไรก็ตามเอกสารประกอบในคู่มือประสิทธิภาพการโหลดข้อมูลระบุว่าส่วนแทรกทั้งสองควรสามารถบันทึกได้น้อยที่สุด ดังนั้นหากการบันทึกขั้นต่ำเป็นความแตกต่างของประสิทธิภาพที่สำคัญทำไมจึงเป็นไปได้ว่าการสืบค้นครั้งที่สองไม่มีคุณสมบัติสำหรับการบันทึกขั้นต่ำ สิ่งที่สามารถทำได้เพื่อปรับปรุงสถานการณ์? Query # 1: การแทรกแถว 5 มม. โดยใช้ INSERT ... with (TABLOCK) พิจารณาแบบสอบถามต่อไปนี้ซึ่งแทรกแถว 5MM ลงในกอง แบบสอบถามนี้ดำเนินการใน1 secondและสร้างข้อมูลล็อกธุรกรรมตามการรายงานของ64MBsys.dm_tran_database_transactions CREATE TABLE dbo.minimalLoggingTest (n INT NOT NULL) GO INSERT INTO dbo.minimalLoggingTest WITH (TABLOCK) (n) SELECT n -- Any table/view/sub-query that correctly estimates that it will generate 5MM …

1
IDENTITY_INSERT มีผลต่อการทำงานพร้อมกันอย่างไร
ฉันกำลังพยายามช่วยเหลือลูกค้าด้วยโปรแกรมเสริม SAP ของ บริษัท อื่นที่มีปัญหาการโพสต์และไม่ได้รับการสนับสนุน ภายใต้สถานการณ์บางอย่างมันจะเก็บถาวรและโพสต์ที่ไม่สมบูรณ์จากตารางคิวการโพสต์ไปยังตารางเก็บถาวรการโพสต์ ฉันต้องการย้ายผลลัพธ์ที่เก็บถาวรเหล่านี้กลับไปที่คิว ID ของคิวคือคอลัมน์ข้อมูลประจำตัวและฉันต้องการเก็บไว้เหมือนเดิม คำถามคือถ้าฉันทำ identity_insert on / insert / identity_insert off ฉันจะคาดหวังอะไรเกี่ยวกับการเกิดพร้อมกันกับกระบวนการที่สร้างรายการคิวและคาดว่าคอลัมน์ identity จะถูกสร้างขึ้นโดยอัตโนมัติ? พอยน์เตอร์ใด ๆ ในวิธีที่ดีที่สุดในการแสดงพฤติกรรมดังกล่าวจะได้รับการชื่นชมอย่างมากเช่นกัน

5
แทรกลงในส่วนที่เลือกลงในตารางที่เกี่ยวข้องหลายรายการโดยใช้ INSERT_IDENTITY
โอเคตั้งฉากแล้ว ฉันมีสามตาราง ( Table1, Table2และDataTable) และฉันต้องการแทรกลงในTable1และTable2ใช้DataTableเป็นแหล่งที่มา ดังนั้นสำหรับทุกแถวในDataTableฉันต้องการแถวในTable1และTable2และTable2ความต้องการที่จะมีการแทรกid(PK) จากTable1... ถ้าฉันจะทำสิ่งนี้ ... INSERT INTO Table1 SELECT A, B, C FROM MyTable INSERT INTO Table2 SELECT IDENTITY_INSERT(), D, E, F FROM MyTable ฉันได้รับการบันทึกลงในแทรกสุดท้ายIDTable1 a CURSORหรือWHILEloop เป็นวิธีเดียวที่จะทำเช่นนี้?

2
ฉันจะกำหนดค่า MySQL Innodb ให้จัดการกับเม็ดมีด 1000 ต่อชั่วโมงได้อย่างไร
ฉันมีเว็บไซต์ที่มีปริมาณการใช้งานสูงซึ่งเป็นไปได้ที่จะมีการแทรกระเบียนใหม่ 1,000 รายการทุกชั่วโมง ข้อผิดพลาดเดียวนี้ทำให้หมดอำนาจเว็บไซต์: PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: INSERT INTO {location_instance} (nid, vid, uid, genid, lid) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4); Array ( [:db_insert_placeholder_0] => 1059 [:db_insert_placeholder_1] => 1059 [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => cck:field_item_location:1059 [:db_insert_placeholder_4] => 1000 …

2
วิธีแทรกที่อยู่ IP ลงในคอลัมน์ inet ใน PostgreSQL ได้อย่างไร
ผมอยากจะแทรกอยู่ IP inetลงในคอลัมน์ที่มีประเภท ฉันสามารถแทรกข้อมูลในรูปแบบใดได้บ้าง มันเป็นไบนารีเท่านั้นหรือมีวิธีใดที่ฉันสามารถแทรกจากข้อความเช่น"192.168.1.082"? มีฟังก์ชั่นช่วยเหลือสำหรับสิ่งนี้เพื่อให้ฉันสามารถทดสอบได้จากpsqlในพร้อมท์คำสั่งหรือไม่

3
แทรกความเร็วสำหรับชุดงานขนาดใหญ่
ในแอปพลิเคชันของฉัน INSERT ของฉันดูเหมือนจะใช้เวลาอย่างมาก ฉันมีวัตถุจำนวนมากในหน่วยความจำ (~ 40-50,000) ซึ่งฉันต้องการแทรกลงในตาราง ลองดูตารางตัวอย่าง CREATE TABLE bill ( id BIGINT(20) PRIMARY KEY, amount INT(11) DEFAULT 0, bill_date DATETIME DEFAULT NOW(), INDEX (bill_date) ) ENGINE=InnoDB การใช้ 3 แถวเป็นขนาดแบทช์ของฉันต่อไปนี้เป็นแนวทางที่ฉันคิดได้สำหรับการแทรก วิธีที่ 1 - สร้างและยิงเม็ดมีด 3 เม็ด INSERT INTO bill (amount, bill_date) VALUES (10, '2012-01-01 00:00:00'); INSERT INTO bill (amount, …
10 mysql  innodb  insert  java  jdbc 

2
Oracle จัดการกับหลาย ๆ INSERTs พร้อมกันอย่างไรในหนึ่งตาราง
ฉันพยายามทำความเข้าใจ Oracle 11g ให้ละเอียดยิ่งขึ้น คำถามของฉันง่าย: Oracle จัดการกับสองช่วงที่พยายามแทรกระเบียนลงในตารางเดียวในเวลาเดียวกันได้อย่างไร ตัวอย่างเช่น INSERT A ทำงานเวลา 13.00 น. เทียบกับตารางที่ 1 จะใช้เวลา 5 นาทีจึงจะเสร็จสมบูรณ์ INSERT B จะดำเนินการเวลา 1:02 PM เทียบกับตารางที่ 1 จะใช้เวลา 1 นาทีจึงจะเสร็จสมบูรณ์ อะไรจะเกิดขึ้น? Oracle จะจัดคิว INSERT B ให้ทำงานหลังจาก INSERT A เสร็จสิ้นหรือไม่ INSERT B จะทำงานพร้อมกันกับ INSERT A หรือไม่ ขอบคุณ!
8 oracle  insert 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.