标签: sql-view

mysql只有在尚不存在时才创建视图

如何仅在视图不存在时创建视图.如果确实存在,我想删除视图并重新定义它.我也想要没有警告或错误.

mysql sql sql-view

6
推荐指数
1
解决办法
6303
查看次数

无法更新视图?

我的网站是使用在Ubuntu 11.10上的Postgresql 8.3服务器上运行的Drupal 6开发的.另外webmin版本1.590.

现在我想更新表中的记录,但是当我运行时:

UPDATE uac_institution_view SET status = '2' WHERE nid = '9950'
Run Code Online (Sandbox Code Playgroud)

它给我一个错误,如:

无法执行SQL:SQL UPDATE uac_institution_view SET status ='2'WHERERE nid ='9950'失败:错误:无法更新视图提示:您需要一个无条件的ON UPDATE DO INSTEAD规则.

问题是只有SELECT查询才有效.UPDATE,INSERTDELETE命令不工作; 他们因上述错误而失败.

这是一个问题吗?语法错误?别的什么?

postgresql sql-view sql-update

6
推荐指数
3
解决办法
2万
查看次数

在MySQL上选择两个数字之间的序列

people在MySQL上以两个日期命名这个表:

| Name | start_date | end_date   |
| John | 2007-03-01 | 2009-10-12 |
| Mike | 2001-06-06 | 2010-12-01 |
Run Code Online (Sandbox Code Playgroud)

我想创建一个视图,让我按活动年份搜索,在活动年份之间start_date进行搜索end_date.所以,我希望得到一个包含多年的字段,如下所示:

| Name | activity_years                                    |
| John | 2007,2008,2009                                    |
| Mike | 2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 |
Run Code Online (Sandbox Code Playgroud)

我尝试了一些方法,但我无法得到它.因为我想创建一个视图,所以我必须在SELECT语句中完成所有操作,这让我很头疼.

mysql sql date sql-view

6
推荐指数
1
解决办法
2712
查看次数

mysql CREATE VIEW 无法从 mysql_query 工作

我有一个在 mysql 数据库中创建 VIEW 的代码,该代码在我的本地服务器上运行良好。它可以正常创建和裁剪视图。但在我的在线服务器上它给出了错误

"CREATE VIEW command denied to user"
Run Code Online (Sandbox Code Playgroud)

对于在线数据库,我在数据库表单 PHPmyAdmin [Myadmin 位于本地主机在线] 中手动创建 VIEW,因此我有权在在线数据库上创建 VIEW。

但是用phpmysql_query就报错了command denied。是否有任何服务可以使用 php.ini 创建视图?

mysql sql sql-view

5
推荐指数
1
解决办法
1万
查看次数

PostgreSQL 中视图的触发器

我想在 PostgreSQL 中为我的视图创建一个触发器。这个想法是所有新数据都必须满足插入条件。但这里出了点问题,我在手册中找不到答案。

CREATE OR REPLACE VIEW My_View AS 
SELECT name, adress, count FROM club, band, country;

CREATE OR REPLACE FUNCTION insert() RETURNS TRIGGER AS $$
BEGIN
    IF(NEW.count > 10) THEN
    INSERT INTO My_View VALUES (NEW.name, NEW.adress, NEW.count);
    END IF;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER insert INSTEAD OF INSERT ON My_View
FOR EACH ROW EXECUTE PROCEDURE insert();
Run Code Online (Sandbox Code Playgroud)

sql postgresql triggers plpgsql sql-view

5
推荐指数
1
解决办法
3758
查看次数

获取时如何使MySql视图过滤每个表

我有一个观点女巫是这样工作的:

CREATE VIEW v_myView as SELECT * FROM(
      (SELECT a,b,c,d FROM table1)
    UNION ALL
      (SELECT a,b,c,d FROM table2)
    UNION ALL
      (SELECT a,b,c,d FROM table3)
    .
    .
    .) 
Run Code Online (Sandbox Code Playgroud)

当我使用视图时,我像这样过滤它:

SELECT * FROM v_myView WHERE a=x
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但需要一个小时(一个真正的小时,不是形象地说)。如果我会做这样的查询:

SELECT * FROM(
      (SELECT a,b,c,d FROM table1 WHERE a=x)
    UNION ALL
      (SELECT a,b,c,d FROM table2 WHERE a=x)
    UNION ALL
      (SELECT a,b,c,d FROM table3 WHERE a=x)
    .
    .
    .) 
Run Code Online (Sandbox Code Playgroud)

这需要一分钟。这让我想知道是否有办法让 MySql 自动执行,这意味着该WHERE命令将在获取每个表之前工作

mysql sql union sql-view

5
推荐指数
1
解决办法
1784
查看次数

视图没有 rowid 值

视图没有 rowid,这是预期的吗?例子:

create table t2 (u text);
insert into t2 values ('x');
insert into t2 values ('y');
create table t1 (t text, i integer);
insert into t1 values ('a',1);
insert into t1 values ('b',2);
insert into t1 values ('c',1);
insert into t1 values ('d',2);
create view v as select * from t1 join t2 on t1.i=t2.rowid;
select rowid,* from t1;
ro t  i
-- -- --
1  a  1
2  b  2
3  c  1
4  d  2
select rowid,* …
Run Code Online (Sandbox Code Playgroud)

sqlite sql-view

5
推荐指数
1
解决办法
3765
查看次数

在 SQL Server 中将查询提示 (OPTION) 置于视图中

我有一个使用多个连接的视图的 SQL 查询,该查询偶尔运行非常慢 - 比正常情况慢很多,使查询几乎无法使用。

我从视图中复制了查询并进行了试验并在https://dba.stackexchange.com/a/60180/52607找到了解决方案- 如果我添加

OPTION (MERGE JOIN, HASH JOIN)
Run Code Online (Sandbox Code Playgroud)

到查询结束时,它的运行速度提高了约 6 倍。

我现在尝试将 OPTION 调整为原始视图,但 SQL Server/SSMS 告诉我

Incorrect syntax near the keyword 'OPTION'.
Run Code Online (Sandbox Code Playgroud)

如何将此选项添加到视图中,以便视图的结果查询同样快?

(将选项添加到视图上的查询并没有导致任何加速。这看起来像这样:

select * from vMyView
where SomeDate >= CONVERT(Datetime, '2017.09.20')
OPTION (MERGE JOIN, HASH JOIN)
Run Code Online (Sandbox Code Playgroud)

我想我必须直接将此选项用于 vMyView - 如果可能的话。)

sql-server query-hints query-performance sql-view

5
推荐指数
1
解决办法
6423
查看次数

视图如何取决于postgres中的主键约束

有时,在批量数据加载时,建议临时删除表上的约束和索引.但是当我这样做时,我遇到了一些依赖问题.我的简化示例:

CREATE TABLE public.t_place_type
(
  id serial NOT NULL,
  c_name character varying(100),
  CONSTRAINT pk_t_place_type PRIMARY KEY (id)
);

CREATE TABLE public.t_place
(
  id serial NOT NULL,
  c_name character varying(50),
  id_place_type integer,
  CONSTRAINT pk_t_place PRIMARY KEY (id),
  CONSTRAINT fk_t_place_t_place_type FOREIGN KEY (id_place_type)
      REFERENCES public.t_place_type (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
);

CREATE OR REPLACE VIEW public.v_place AS 
 SELECT p.id,
    p.c_name,
    pt.c_name AS c_place_type
   FROM t_place p
     LEFT JOIN t_place_type pt ON pt.id = p.id_place_type
  GROUP BY …
Run Code Online (Sandbox Code Playgroud)

postgresql constraints sql-view postgresql-9.5

5
推荐指数
1
解决办法
597
查看次数

Postgres 9.6:在冲突时插入视图

我有 2 个表都具有唯一约束,1 个连接这 2 个表的视图和一个INSTEAD OF INSERT允许INSERTUPDATE在视图上的触发器。

一切正常INSERTUPDATE但如果我这样做,INSERT .. ON CONFLICT(tableAColumn,tableBColumn) DO UPDATE我会收到错误消息:

[42P10] ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
Run Code Online (Sandbox Code Playgroud)

如果视图可以自动更新,那么我想我可以只使用 aWITH CHECK OPTION但是我如何使用INSTEAD OF INSERT触发器来做到这一点?

或者另一种方式来询问如何使视图具有与构建它的表相同的约束?

postgresql triggers sql-view sql-update sql-insert

5
推荐指数
0
解决办法
97
查看次数