Gibt es eine Möglichkeit, Datentypen anzugeben und Einschränkungen zu halten, wenn eine Redshift CREATE TABLE AS
Abfrage ausgeführt wird?Angeben von Datentypen in Redshift 'CREATE TABLE AS' Abfrage
Im folgende Beispiel, würde Ich mag die column1
NOT NULL
Einschränkung eine Kopie von table1 mit der Säule column2
als NVARCHAR(500)
Typ anstatt VARCHAR(255)
und hält schaffen können.
CREATE TABLE test.table1 (column1 INT NOT NULL, column2 VARCHAR(255));
INSERT INTO test.table1
SELECT 1,'foo';
CREATE TABLE test.table2 AS
SELECT column1,CAST(column2 AS NVARCHAR(500))
FROM test.table1;
/* query executes successfully but still creates column2 as VARCHAR(255) and column1 is NULLABLE. */
CREATE TABLE test.table2 (
column1 INT NOT NULL
,column2 NVARCHAR(500)
) AS
SELECT column1
,column2
FROM test.table1;
/* ERROR: 42601: syntax error at or near "as" */
Edit: Ich bin mir bewusst, dass ich dies ausdrücklich in zwei Schritten tun konnte test.table2
mit den richtigen Datentypen und Einschränkungen zu schaffen, dann eine INSERT-Anweisung tun, um die Daten in test.table1
verwenden. Ich bin jedoch neugierig, ob dies in einer CREATE TABLE AS-Abfrage durchgeführt werden kann. Alle Umgehungslösungen oder Tipps würden sehr geschätzt werden! :)