我使用以下语句创建了一个测试表:
CREATE TABLE `zprueba` (
`a` INT(11) NOT NULL AUTO_INCREMENT,
`b` VARCHAR(1) NOT NULL,
PRIMARY KEY (`a`),
INDEX `b` (`b`)
)
COLLATE='utf32_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;
第 2 步:插入 2 行:
INSERT INTO `zprueba` (`a`, `b`) VALUES (1, 'N');
INSERT INTO `zprueba` (`a`, `b`) VALUES (2, 'S');
第 3 步:我创建了一个 View
create view zprueba2 as select a,b from zprueba where b='S'
当我调用此查询时,我获得 1 行:
select a,b from zprueba where b='S'
但是当我打电话时:
select a,b from zprueba2
我获得 0 行。
有人可以帮助我解决这种奇怪的行为吗?
最诚挚的问候 劳尔。
最佳答案
没有;我无法复制这种行为...
DROP TABLE IF EXISTS zprueba;
DROP VIEW IF EXISTS zprueba2;
CREATE TABLE `zprueba` (
`a` INT(11) NOT NULL AUTO_INCREMENT,
`b` VARCHAR(1) NOT NULL,
PRIMARY KEY (`a`),
INDEX `b` (`b`)
);
INSERT INTO `zprueba` (`a`, `b`) VALUES (1, 'N');
INSERT INTO `zprueba` (`a`, `b`) VALUES (2, 'S');
create view zprueba2 as select a,b from zprueba where b='S';
select a,b from zprueba2 where b='S';
+---+---+
| a | b |
+---+---+
| 2 | S |
+---+---+
select a,b from zprueba2;
+---+---+
| a | b |
+---+---+
| 2 | S |
+---+---+
关于Mysql View 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46472376/