我在下面的代码中创建了一个存储过程
CREATE DEFINER=`john`@`%` PROCEDURE `new_type`(IN typ_id int(11), `typ_name` varchar(100))
BEGIN
INSERT INTO user_type (`typ_id`,`typ_name`,`usr_id`) VALUES (typ_id,usr_typ_name,usr_id)
ON DUPLICATE KEY UPDATE `typ_name` = VALUES(typ_name),
`usr_id` = VALUES(usr_id);
END
插入和更新工作正常。关于选择的问题,我在MYSQL 中有两个用户帐户。 john 创建的过程和他只有这个数据库的访问权限。另一个名为“Admin”的用户名,他拥有所有数据库的所有访问权限。选择查询的结果是多种多样的。看例子。
对于管理员的结果
1 'Admin', '4'
2 'Manger', '5'
3 'Secretary', '6'
对于约翰的结果
1 'Admin', '4'
2 'Manger', '5'
3 'Secretary', '6'
4 'User', '7'
5 'Assist Mager', '8'
为什么管理员用户没有得到'User' , 'Assist Mager'
请您参考如下方法:
如果你想给管理员用户完全访问权限,那么你需要给它grant all privileges
。
SQL GRANT 是用于向用户提供对数据库对象的访问或特权的命令。
GRANT ALL PRIVILEGES ON database.* TO 'admin'@'localhost';