· 7 years ago · Feb 03, 2019, 05:10 PM
1drop table if exists dic_city cascade;
2create table dic_city (
3 city_id integer primary key,
4 city text
5);
6
7drop table if exists vk_user cascade;
8create table vk_user (
9 id integer primary key,
10 first_name text,
11 last_name text,
12 deactivated boolean,
13 is_closed boolean,
14 sex integer,
15 bdate date,
16 maiden_name text,
17 city integer references dic_city,
18 country integer, -- references dic_country,
19 skype text,
20 instagram text,
21 facebook text,
22 livejournal text,
23 twitter text,
24 home_town text,
25 has_photo integer,
26 domain text,
27 has_mobile integer,
28 mobile_phone text,
29 home_phone text,
30 site text,
31 status text,
32 followers_count integer,
33 nickname text,
34 relatives jsonb,
35 relation integer,
36 relation_partner_id integer,
37 political integer,
38 langs text[], --?
39 religion text,
40 inspired_by text,
41 people_main integer,
42 life_main integer,
43 smoking integer,
44 alcohol integer,
45 activities text,
46 interests text,
47 music text,
48 movies text,
49 tv text,
50 books text,
51 games text,
52 about text,
53 quotes text
54);
55
56insert into vk_user (id, first_name, last_name, city, bdate)
57select
58(data->>'id')::int as id,
59data->>'first_name' as first_name,
60data->>'last_name' as last_name,
61(data#>>'{city,id}')::int as city,
62(replace(data->>'bdate','.','/'))::date as bdate
63from import.stdin
64limit 100;
65
66ERROR: insert or update on table "vk_user" violates foreign key constraint "vk_user_city_fkey" DETAIL: Key (city)=(96) is not present in table "dic_city".