Advertisement
Guest User

Untitled

a guest
May 29th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. CREATE TABLE UserAccount (
  2. SocialType ENUM('Google', 'Facebook'),
  3. SocialID BINARY(16),
  4. UserID INT UNIQUE NOT NULL AUTO_INCREMENT,
  5.  
  6. PRIMARY KEY(SocialType, SocialID)
  7. );
  8.  
  9. CREATE TABLE UserInfo (
  10. UserID INT,
  11. Nickname VARCHAR(20) UNIQUE,
  12.  
  13. PRIMARY KEY(UserID),
  14. FOREIGN KEY(UserID) REFERENCES UserAccount(UserID)
  15. ON DELETE CASCADE,
  16. );
  17.  
  18. DELIMITER $$
  19. CREATE PROCEDURE usp_CreateNewUser(
  20. socialType ENUM('Google','Facebook'),
  21. socialID VARCHAR(100),
  22. nickname VARCHAR(20),
  23. OUT result INT)
  24. Work:BEGIN
  25. IF EXISTS(SELECT 1 FROM UserAccount WHERE SocialType = socialType AND SocialID = UNHEX(MD5(socialID)))
  26. THEN
  27. SET result = -1;
  28. Leave Work;
  29. END IF;
  30.  
  31. IF EXISTS(SELECT 1 FROM UserInfo WHERE Nickname = nickname)
  32. THEN
  33. SET result = -2;
  34. Leave Work;
  35. END IF;
  36.  
  37. INSERT INTO UserAccount() VALUE(socialType, UNHEX(MD5(socialID)), 0);
  38. INSERT INTO UserInfo(UserID, Nickname) VALUE(LAST_INSERT_ID(), nickname);
  39. SET result = LAST_INSERT_ID();
  40. END $$
  41. DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement