我用这个语句创建了一个测试表:
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步:我创建了一个视图
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行。
任何人都可以帮我解决这个奇怪的行为吗?
祝你好运 劳尔。
答案 0 :(得分: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 |
+---+---+