1
我在MySQL中有一個存儲過程的問題。我想通過傳遞ID參數來獲得單行,但是,似乎SP忽略了WHERE過濾器並顯示了表中的所有列。如何通過MySQL存儲過程中的ID獲得一行?
我覺得奇怪的是,如果我在存儲過程以外的查詢中傳遞id的特定值(例如1003),將返回預期結果。
對不起,如果我的錯誤是愚蠢的,我是新手。
表結構是這樣的:
CREATE TABLE Paciente
(
ID INT AUTO_INCREMENT NOT NULL,
DNI CHAR(8) UNIQUE NULL,
Nombre NVARCHAR(70) NOT NULL,
Apellido_Paterno NVARCHAR(30) NOT NULL,
Apellido_Materno NVARCHAR(30) NOT NULL,
Edad TINYINT NOT NULL,
Sexo CHAR(1) NOT NULL,
Calle NVARCHAR(50) NULL,
Numero_Domicilio SMALLINT(4) NULL,
Telefono NVARCHAR(8) NULL,
Movil NVARCHAR(10) NULL,
Estado_Civil NVARCHAR(20) NULL,
Ocupacion NVARCHAR(30) NULL,
Fecha_Registro DATETIME DEFAULT CURRENT_TIMESTAMP,
Estado BOOLEAN NULL DEFAULT TRUE,
PRIMARY KEY(ID)
)ENGINE = InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1000;
Stored Procedure:
DELIMITER $$
CREATE PROCEDURE `buscarPaciente`(IN id INT)
BEGIN
SELECT * FROM Paciente WHERE ID = id LIMIT 1;
END
$$
DELIMITER ;
你是指列還是行? – artm
只有一個記錄 –
噢,對不起,我的錯誤。 –