MSSQL és MYSQL procedúrák

Egy  kis példán keresztül szeretném bemutatni az MSSQL és MYSQL tárolt eljárások közötti különbséget.

A kód egy weboldalon menti el a látogatók adatait, de ugyan arról az IP címről érkező látogatót csak 1x ment el 24 órán belül.

MSSQL


CREATE PROCEDURE NewVisitor (@UserIP varchar (15), @UserCountry varchar (255), @UserBrowser varchar (255))
AS
BEGIN
    DECLARE @N INT;
    SELECT @N = COUNT(*) FROM Visitor WHERE Date > DATEADD(DAY, -1, GETDATE()) AND
         IPAddress = @UserIP
IF @N = 0 
	BEGIN
		INSERT INTO Visitor(IPAddress, Country, Browser) VALUES (@UserIP,@UserCountry,@UserBrowser)
	END
END

Mysql


DELIMITER &&
CREATE PROCEDURE NewVisitor (UserIP varchar (15), UserCountry varchar (255),UserBrowser varchar (255))
BEGIN
    DECLARE N INTEGER;
    SELECT COUNT(*) INTO N FROM Visitors WHERE Date >  NOW() - INTERVAL 1 DAY AND
        IPAddress = UserIP;
    IF N = 0 THEN
		INSERT INTO Visitors(IPAddress, Country, Browser) VALUES
                    (UserIP,UserCountry,UserBrowser);
    END IF;
END &&
DELIMITER ;
Facebook Comments