drop table if exists work.email_alle_datei;
create table work.email_alle_datei as
select
work.email_alle.e_mail,
work.email_alle.vorname,
work.email_alle.name,
work.email_alle.plz as zip,
work.email_alle.strasse as street1,
’ ’ as street2,
work.email_alle.ort as city,
‘DEU’ as country,
’ ’ as company,
‘1’ as targetgroup
from
work.email_alle
;
Leider werden bei den Spalten street2, country, company und targetgroup die Werte nicht in die Tabelle übertragen.
Ich verstehe immer noch nicht was du für Werte erwartest?
Das Problem ist das PostgreSQL nicht weiß welcher Datentyp es sein soll, und du dann mit diesen Spalten nicht weiterarbeiten kannst.
Beispiel:
# create table test as select relname, '' street2 from pg_class;
WARNUNG: Spalte „street2“ hat Typ „unknown“
DETAIL: Relation wird trotzdem erzeugt.
SELECT 311
Zeit: 129,337 ms
# \d test
Tabelle „public.test“
Spalte | Typ | Attribute
---------+---------+-----------
relname | name |
street2 | unknown |
WARNUNG: Spalte „street2“ hat Typ „unknown“
Also entweder nur das
create table .. as select ...
mit den vorhandenen Spalten ausführen. Und die zusätzlichen Spalten per
alter table ... add street2 varchar(100)
hinzufügen.
Oder zuerst die Tabelle sauber definieren. Und dann mit einem
insert into test ( relname, street2) select relname, null from pg_class;
test=# create table blubb as select ''::text as val, 3::int as i, NULL::date as datum;
SELECT 1
test=*# \d blubb
Table "public.blubb"
Column | Type | Modifiers
--------+---------+-----------
val | text |
i | integer |
datum | date |
test=*# select * from blubb;
val | i | datum
-----+---+-------
| 3 |
(1 row)
test=*# rollback;
ROLLBACK
test=#