Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE UserAccount (
- SocialType ENUM('Google', 'Facebook'),
- SocialID BINARY(16),
- UserID INT UNIQUE NOT NULL AUTO_INCREMENT,
- PRIMARY KEY(SocialType, SocialID)
- );
- CREATE TABLE UserInfo (
- UserID INT,
- Nickname VARCHAR(20) UNIQUE,
- PRIMARY KEY(UserID),
- FOREIGN KEY(UserID) REFERENCES UserAccount(UserID)
- ON DELETE CASCADE,
- );
- DELIMITER $$
- CREATE PROCEDURE usp_CreateNewUser(
- socialType ENUM('Google','Facebook'),
- socialID VARCHAR(100),
- nickname VARCHAR(20),
- OUT result INT)
- Work:BEGIN
- IF EXISTS(SELECT 1 FROM UserAccount WHERE SocialType = socialType AND SocialID = UNHEX(MD5(socialID)))
- THEN
- SET result = -1;
- Leave Work;
- END IF;
- IF EXISTS(SELECT 1 FROM UserInfo WHERE Nickname = nickname)
- THEN
- SET result = -2;
- Leave Work;
- END IF;
- INSERT INTO UserAccount() VALUE(socialType, UNHEX(MD5(socialID)), 0);
- INSERT INTO UserInfo(UserID, Nickname) VALUE(LAST_INSERT_ID(), nickname);
- SET result = LAST_INSERT_ID();
- END $$
- DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement