CREATE TABLE `test`
(`id` tinyint,
`content` varchar(20),
primary key (`id`)
);INSERT INTO `test`
VALUES (1,'aaaaa'),(2,'bbbbb'),(3,'ccccc');CREATE PROCEDURE `p1`(in $id int)
BEGIN
SELECT `content` FROM `test`
WHERE `id`=$id;
ENDCALL p1(1);
test表的id字段为tinyint,存储过程中传入参数类型为int,这样子的话p1这个存储过程中 WHERE `id`=$id 里$id会不会有隐式转换(由int转为tinyint)?
由tinyint 转为int.但上面只是个人理解,未经证实。也想不出什么办法来测试。或许需要看一下MYSQL的源代码来理解。基于mysql是由C编译的,所以一般来说应该是将 byte, 转为 int 或者 long