2016-06-01 4 views
0

gibt es postgresql Datenbank movie_db benannt und erstellt eine Tabelle mit dem Namen Filme, wie folgend:Legen Sie zwei oder drei Werte in einer Spalte in der PostgreSQL-Datenbank

CREATE TABLE movies (
title  varchar(128) NOT NULL, 
description varchar(256) NOT NULL, 
directors varchar(128)[], 
roles  varchar(128)[] 
); 

ich folgende Daten eingefügt werden soll:

title description   directors  roles 
a  the love of wind  tom  tom, kaon, kate 
b  the second way story john  jack, mark 

zum Beispiel, Sie wissen, der Film hat nicht nur einen Schauspieler, zum Beispiel hat Film den Schauspieler (Rollen): Tom, Kaon und Kate. Ich möchte diese beiden Daten in die Tabelle einfügen mit dem folgenden Befehl:

insert into movies(title, description, directors, roles) values('a',  
'the love of wind', 'tom',{'tom, kano, kate'})) 

aber es gibt Fehler:

ERROR: syntax error at or near "{" 
LINE 1: ...ors, roles) values('a', 'the love of wind', 'tom',{'tom, 
kan.. 
                 ^

Können Sie mir helfen, damit umzugehen, vielen Dank für Ihre Hilfe!

+3

Was ist der Grund für dieses de-normalisiert Modell ist? Sie sollten zuerst mit einem ordnungsgemäß normalisierten Modell beginnen und nur dann de-normalisieren, wenn es einen guten Grund dafür gibt. Abgesehen davon: Die Syntax zur Angabe von Arrays ist im Handbuch dokumentiert: https://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-IO –

+0

Danke für deinen Kommentar, ich habe es gelöst, nachdem ich gelesen habe das Dokument! Aber ich habe eine andere Frage basierend auf diesem Problem, ich werde meine Frage in einem anderen Beitrag posten, bitte geben Sie mir Ihre Hand! Vielen Dank! Ich werde dir den Link geben. –

Antwort

0

Dank @ a_horse_with_no_name, löste ich es, nachdem ich das Dokument über Array im Postgresql-Dokument gelesen habe.

Die Antwort über meine Frage gestellt:

insert into movies(title, description, directors, roles) values('a',  
'the love of wind', '{"tom"}','{"tom", "kano", "kate"}'); 
+1

Ich persönlich bevorzuge die explizite Syntax: 'array ['tom']' oder 'array ['tom', 'kano', 'kate']' - weniger Probleme mit einfachen/doppelten Anführungszeichen –

+0

Danke, Sie haben Recht. –

Verwandte Themen