1 Kasım 2010, PAZARTESİ
İsim: eklerseniz zaten yok
Python PostgreSQL veritabanına yazmak için kullanıyorum:
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string = hundred ", '" hundred_slug "', " status ");"
cursor.execute(sql_string)
Ama benim satır aynı olduğu için aşağıdaki hatayı alıyorum:
psycopg2.IntegrityError: duplicate key value
violates unique constraint "hundred_pkey"
Nasıl bir yazmak bu satır zaten' SQL deyimi? yoksa 'EKLEME yapabilirim
Bu tavsiye gibi karmaşık ifadeleri gördüm:
IF EXISTS (SELECT * FROM invoices WHERE invoiceid = '12345')
UPDATE invoices SET billed = 'TRUE' WHERE invoiceid = '12345'
ELSE
INSERT INTO invoices (invoiceid, billed) VALUES ('12345', 'TRUE')
END IF
Ama öncelikle, ihtiyacım olan ne, bu çok tehlikeli, ve ikinci olarak, ne kadar basit bir dize olarak bir tane çalıştırabilir miyim?
CEVAP
12 Kasım 2012, PAZARTESİ
Nasıl bir yazmak bu satır zaten' SQL deyimi? yoksa 'EKLEME yapabilirim
PostgreSQL koşullu EKLE yapmanın güzel bir yolu var:
INSERT INTO example_table
(id, name)
SELECT 1, 'John'
WHERE
NOT EXISTS (
SELECT id FROM example_table WHERE id = 1
);
UYARIBu yaklaşım, 0 güvenilir değildireşzamanlıişlemleri, yazacak. NOT EXISTS
anti-semi-birleştirmek SELECT
INSERT
kendisi arasında çok küçük bir yarış durumu vardır.olabilirbu koşullar altında başarısız.
Bunu Paylaş:
Neden Java bize bir isim dosya adından...
Görünüm.setPadding dp setPadding sadec...
Neden JavaScript işlevi benim isim çat...
Nasıl zaten başlatılmış bir JavaScript...
Django İsim: "geçerli işlem iptal...