Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. CREATE TABLE public.users
  2. (
  3. user_id SERIAL PRIMARY KEY,
  4. first_name varchar(40) NOT NULL,
  5. second_name varchar(40) NOT NULL,
  6. passwordhash varchar(64) NOT NULL,
  7. email varchar(100) NOT NULL,
  8. phonenumber varchar(20),
  9. created_on timestamp without time zone DEFAULT timezone('utc'::text, now()),
  10. CONSTRAINT users_email_key UNIQUE (email),
  11. CONSTRAINT proper_email CHECK (email::text ~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'::text)
  12. );
  13.  
  14. CREATE TABLE user_role
  15. (
  16. role_id SERIAL PRIMARY KEY,
  17. role_name varchar(40) NOT NULL
  18. );
  19.  
  20. INSERT INTO user_role (role_name) VALUES ('default');
  21.  
  22.  
  23. CREATE TABLE user_to_role (
  24. user_id int REFERENCES users (user_id),
  25. role_id int REFERENCES user_role (role_id) DEFAULT 1,
  26. is_ban boolean DEFAULT FALSE,
  27. PRIMARY KEY(user_id, role_id)
  28. );
  29.  
  30.  
  31.  
  32. CREATE OR REPLACE FUNCTION function_insert_user_to_role () RETURNS trigger AS
  33. $BODY$
  34. BEGIN
  35. INSERT INTO user_to_role(user_id) VALUES ((select max(user_id) from users));
  36. RETURN NEW;
  37. END
  38. $BODY$
  39. LANGUAGE plpgsql;
  40.  
  41. CREATE TRIGGER triger_insert_user_to_role
  42. AFTER INSERT
  43. ON users
  44. EXECUTE PROCEDURE function_insert_user_to_role();
  45.  
  46.  
  47.  
  48. INSERT INTO users (first_name, second_name, email, passwordhash, phonenumber) VALUES ('denis', 'maleev', 'lopu@ukr.net', 'test', "80930977193")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement