我使用Spring for DI和Hibernate在mySQL数据库上进行数据访问.我在一个事务中有代码,该事务在表中插入记录,然后执行查询该表并执行一些聚合计算的视图.我看到的问题是我刚刚在同一个事务中插入的记录未包含在视图的计算值中.我在mySQL工作台中运行相同的视图,插入的值包含在视图中.有谁知道是什么原因造成的?
我正在处理一个视图,然后由用户更新。此更新基本上更改了列的值。但现在它不允许我这样做并产生这个:
Update or insert of view or function '' failed because it contains a derived or constant field.
Run Code Online (Sandbox Code Playgroud)
我知道这是因为我在 select 语句中有一个常量,但是有没有办法绕过它?请帮忙
这是我的视图代码
Create view Schema.View1
as
SELECT
Convert(Varchar(20),l.jtpName) as JobType, Convert(Varchar(10),' <All> ')as SubCategory , Convert(varchar (3), Case when a.jtpName= l.jtpName and a.subName= ' <All> ' then 'Yes' else 'No' end) As AutoProcess from Schema.JobType l left join Schema.Table1 a on l.jtpName=a.jtpName
UNION
SELECT
Convert(Varchar(20),a.jtpName) as JobType, Convert(Varchar(10),a.subName) as SubCategory, Convert(varchar (3),Case when b.jtpName= a.jtpName and b.subName= a.subName then 'Yes' …Run Code Online (Sandbox Code Playgroud) 我的数据库中有 3 个用户(架构)。
用户 A 持有表 X
我为用户 B 创建了一个视图 Y,为用户 C 创建了一个视图 Z。这些视图是相同的:
CREATE OR REPLACE FORCE EDITIONABLE VIEW "user_name"."view_name" ("field_1", "field_2") AS
SELECT field1_1
, field2_2
FROM User_A.X;
Run Code Online (Sandbox Code Playgroud)
第一个视图工作正常;对于第二个,我在尝试查看数据时出现以下错误(来自 SQL 开发人员):
ORA-04063: 视图“User_C.Z”有错误。
我试图通过 SQL PLUS 创建它:它是在编译错误时创建的,但“显示错误”命令返回“无错误”。
有什么建议吗?
我运行以下查询来在 SQLite 数据库中创建数据库视图:
CREATE VIEW customerview AS
SELECT
a.id
, name
, email
, vat
, street
, number
, postal
, city
, country
, geo_lat
, geo_lon
, customer_id
, is_primary
FROM customerbin_address a
, customerbin_customer b
WHERE b.id = a.customer_id
AND a.is_primary = 1
Run Code Online (Sandbox Code Playgroud)
在 models.py 中我添加了模型:
class Customerview(models.Model):
name = models.CharField(max_length=100, db_column='name')
email = models.EmailField(unique=True, db_column='email')
vat = VATNumberField(countries=['NL', 'BE', 'FR', 'DE', 'UK'], blank=True, null=True, db_column='vat')
street = models.CharField(max_length=100, db_column='street')
number = models.IntegerField(null=True, db_column='number')
postal = …Run Code Online (Sandbox Code Playgroud) 我正在尝试为递归查询创建一个视图,并使用带有 where 子句的视图来设置起点。
CREATE TABLE dog (
id int,
name varchar(50)
)
CREATE TABLE dog_parent (
id int,
dog_id int,
parent_id int,
)
Run Code Online (Sandbox Code Playgroud)
这个递归查询返回我期望的结果
WITH recursive Ancestor_Tree AS (
SELECT
mp.dog_id,
mp.parent_id
FROM
dog_parent mp
WHERE mp.dog_id = 26
UNION ALL
SELECT
mp.dog_id,
mp.parent_id
FROM
dog_parent mp,
Ancestor_Tree ft
WHERE mp.dog_id = ft.parent_id
)
SELECT
ft.dog_id,
mm.name AS Member,
ft.parent_id,
mp.name AS Parent
FROM Ancestor_Tree ft
INNER JOIN dog mm
ON mm.id = ft.dog_id
INNER JOIN dog mp
ON mp.id …Run Code Online (Sandbox Code Playgroud) 我有一个场景,我将两个表合并为一个(使用UNION),并从其他表中加入JOIN数据.
我可以使用VIEW或UDF /用户定义函数来执行此操作.
考虑到我在我的数据库中到目前为止没有任何视图,但是有很多UDF用于全文搜索等,我很想在这种情况下使用UDF来保持它"干净".
但是,这完全是主观的,我想知道在这种情况下是否有更好的客观理由去寻找VIEW或UDF.
我确实比较了两者的查询计划,它们完全相同,所以我不认为使用任何一个都会有性能损失或优势.
还有其他理由选择其中一个或不重要吗?
我想有一个视图,我可以运行返回多个结果集.这可能吗?
如果视图无法执行此操作,那么SQL Server中是否有另一个具有高可见性/透明度的对象可以实现此目的?(我喜欢使用视图,因为我可以很容易地看到它并在Views文件夹下运行它).存储过程并不是很理想,因为我有这么多.
谢谢
这是一个table1:
+--------------------+
| type | size | code |
+--------------------+
| A | 10 | 1 |
| A | 8 | 0 |
| B | 3 | 1 |
| B | 5 | 0 |
| A | 9 | 1 |
+--------------------+
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个视图来实现这些目标:
1. Group by "type" column
2. calculate avg(size) for each "type"
3. calculate the percent of "1" in "code" cloumn for "type"
+----------------------------+
| type | avg(size) | percent |
+----------------------------+
| A …Run Code Online (Sandbox Code Playgroud) 我有一个像这样结构的表
ColA|ColB|LowRange|HighRange
----------------------------
1 A 1 5
Run Code Online (Sandbox Code Playgroud)
我想创建一个视图,使数据以下列格式可用
ColA|ColB|RangeNumber
----------------------
1 A 1
1 A 2
1 A 3
1 A 4
1 A 5
Run Code Online (Sandbox Code Playgroud)
我对观点不够熟悉所以我需要一些方向.
谢谢
我有一个情境/上下文,其中特定视图在返回结果之前需要120秒.在执行简单的ALTER(或删除/创建)时,视图需要1到2秒.这怎么可能?我们如何解决这个问题 - 因为我们没有可以帮助我们的专用DBA.由于我们拥有链接服务器设置(MSSQL Server 2012抱怨这一点),因此无法制作索引视图.
以下是有关设置的信息.
TL; DR View_MAIN在一段时间后需要120秒.当我们在View_X,View_Y和View_MAIN上执行ALTER视图而不改变任何内容时,性能再次正常为1到2秒.
View_MAIN
SELECT
column1, column2, column3, column4, column5
FROM View_X
UNION ALL
SELECT
column1, column2, column3, column4, column5
FROM View_Y
Run Code Online (Sandbox Code Playgroud)
View_X
SELECT
LTRIM(RTRIM(table1.a)) as column1,
table2.b COLLATE Latin1_General_CI_AS as column2,
table1.c as column3,
CAST(table3.d AS DATETIME) as column4,
'XXXXXX' as column5
FROM
[linkedserver01].[DATABASE_IDN].[dbo].[dataForX] table1
LEFT OUTER JOIN [linkedserver02].[DATABASE_INFM] as table2
ON table2.id = table1.id
LEFT OUTER JOIN [linkedserver02].[DATABASE_PIK] as table3
ON table3.id = table1.id
Run Code Online (Sandbox Code Playgroud)
View_Y
SELECT
LTRIM(RTRIM(table1.a)) as column1,
table2.b COLLATE Latin1_General_CI_AS …Run Code Online (Sandbox Code Playgroud)