Users alternate emails internal procedures

Users_Alternate_Emails_Create

DROP   PROCEDURE Users_Alternate_Emails_Create;
DELIMITER //
CREATE PROCEDURE Users_Alternate_Emails_Create
(
  $Sid                       CHAR(64),
  $USER                       INT(11),
  $email                  VARCHAR(99)
)
BEGIN

IF @@read_only THEN

    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'READ_ONLY';

ELSE

	CALL Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );

	IF @USER = $USER THEN

	  REPLACE INTO users_alternate_emails VALUES ( $USER, $email, GenerateSalt() );

	END IF;

END IF;

END
//
DELIMITER ;

Users_Alternate_Emails_Delete

DROP   PROCEDURE Users_Alternate_Emails_Delete;
DELIMITER //
CREATE PROCEDURE Users_Alternate_Emails_Delete
(
  $Sid                       CHAR(64),
  $USER                       INT(11),
  $Email                  VARCHAR(99)
)
BEGIN

IF @@read_only THEN

    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'READ_ONLY';

ELSE

	CALL Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );

	IF @USER = $USER THEN
		DELETE FROM users_alternate_emails WHERE USER=$USER AND email=$Email;
	END IF;

END IF;

END
//
DELIMITER ;

Users_Alternate_Emails_Retrieve_By_USER

DROP   PROCEDURE Users_Alternate_Emails_Retrieve_By_USER;
DELIMITER //
CREATE PROCEDURE Users_Alternate_Emails_Retrieve_By_USER
(
  $Sid                       CHAR(64),
  $USER                       INT(11)
)
BEGIN

IF @@read_only THEN

    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'READ_ONLY';

ELSE

	CALL Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );

	IF @USER = $USER THEN
		SELECT * FROM users_alternate_emails WHERE USER=$USER ORDER BY email;
	END IF;

END IF;

END
//
DELIMITER ;