视图没有 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) 在一个单独的线程中,我得到了一个关于如何将我的存储过程转换为视图的工作示例,它将客户名称保存到订单映射,其中订单是逗号分隔的订单列表,包括无订单的NULL.因此,对于下表,我需要在视图中显示以下内容:
Name Orders
'John' New Hat, New Book, New Phone
'Marry' NULL
Run Code Online (Sandbox Code Playgroud)
我需要索引视图,但如果视图中的SELECT查询具有APPLY和/或子查询,则无法执行此操作.是否可以将此视图转换为索引视图?
create table Customers (CustomerId int, CustomerName VARCHAR(100))
create table Orders (CustomerId int, OrderName VARCHAR(100))
insert into Customers (CustomerId, CustomerName) select 1, 'John' union all select 2, 'Marry'
insert into Orders (CustomerId, OrderName) select 1, 'New Hat' union all select 1, 'New Book' union all select 1, 'New Phone'
go
create view OrderView as
select c.CustomerName, x.OrderNames
from Customers c
cross apply (select stuff((select ',' + …Run Code Online (Sandbox Code Playgroud) 如何在phpMyAdmin或其他程序中看到用于创建视图的原始 MySQL?
我使用的是phpMyAdmin版本3.3.9.
这篇文章讲述了如何查看用于创建视图的SQL,但它不是使用的原始SQL. 如何使用phpMyAdmin 3.2.4编辑视图?
返回的代码有效,它只是没有我的原始格式,使编辑更难.是否有一个程序可以使这更容易,或者我需要将原始SQL保存在某个文本文件中?
使用的SQL:
CREATE VIEW `wheel`.`new_view` AS
SELECT
`t_ci_sessions`.`session_id`,
`t_ci_sessions`.`ip_address`,
`t_ci_sessions`.`user_agent`,
`t_ci_sessions`.`last_activity`,
`t_ci_sessions`.`user_data`
FROM `wheel`.`t_ci_sessions`;
SELECT * FROM `wheel`.`ci_sessions`;
Run Code Online (Sandbox Code Playgroud)
SQL phpMyAdmin返回:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `new_view` AS select `t_ci_sessions`.`session_id` AS `session_id`,`t_ci_sessions`.`ip_address` AS `ip_address`,`t_ci_sessions`.`user_agent` AS `user_agent`,`t_ci_sessions`.`last_activity` AS `last_activity`,`t_ci_sessions`.`user_data` AS `user_data` from `t_ci_sessions`
Run Code Online (Sandbox Code Playgroud) 我想使用子查询在MySQL中创建视图
CREATE OR REPLACE VIEW `V_TASK_TRANSFER` (`REF_ID`, `DATE_CREATE`, `DATE_TRX`,
`ACCOUNT_NO`, `TO_ACCOUNT_NO`, `TO_NAME`, `CURRENCY_CODE`, `AMOUNT`,
`TASK_TYPE`, `NAME_E`, `NAME_I`, `REF_NO`, `EXECUTION_TYPE`,
`REVIEW_COUNT`, `REVIEW_NEED`, `APPROVE_COUNT`, `APPROVE_NEED`,
`TRX_COUNT_SUCCESS`, `TRX_COUNT_FAIL`, `TRX_COUNT_ALL`,
`STATUS_TF`, `USER_ID`
) AS
SELECT REF_ID,
DATE_CREATE,
DATE_TRX,
ACCOUNT_NO,
TO_ACCOUNT_NO,
TO_NAME,
CURRENCY_CODE,
AMOUNT,
TASK_TYPE,
NAME_E,
NAME_I,
REF_NO,
EXECUTION_TYPE,
REVIEW_COUNT,
REVIEW_NEED,
APPROVE_COUNT,
APPROVE_NEED,
TRX_COUNT_SUCCESS,
TRX_COUNT_FAIL,
TRX_COUNT_ALL,
STATUS_TF,
USER_ID
FROM
(SELECT T.REF_ID,
T.DATE_CREATE,
T.DATE_TRX,
TTF.ACCOUNT_NO,
TTF.TO_ACCOUNT_NO,
TTF.TO_NAME,
TTF.CURRENCY_CODE,
TTF.AMOUNT,
T.TASK_TYPE,
TT.NAME_E,
TT.NAME_I,
T.REF_NO,
T.EXECUTION_TYPE,
T.REVIEW_COUNT,
T.REVIEW_NEED,
T.APPROVE_COUNT,
T.APPROVE_NEED,
T.TRX_COUNT_SUCCESS,
T.TRX_COUNT_FAIL,
T.TRX_COUNT_ALL,
T.STATUS_TF,
T.USER_ID
FROM IB_TASKS T …Run Code Online (Sandbox Code Playgroud) 在TournamentDetails面前,vw意味着什么?
SELECT * FROM vwTournamentDetails WHERE
firstname='@firstName'
AND lastname='@lastName'
AND --etc
Run Code Online (Sandbox Code Playgroud)
TournamentDetails表来自何处?我们没有名为TournamentDetails的表.
它发生在我的项目中,我不得不扩展一个现有的表,其中包含更多列.不幸的是我不能改变或删除/重新创建它,所以我只选择创建另一个具有1:1-Relationship的表,并在具有插入/更新/删除触发器的视图中合并它们.
到目前为止,插入和删除工作,但我有更新触发器的问题.成功的信息更令人困惑.
View看起来像这样:
Create View [dbo].[JoinedGroups] as
SELECT [dbo].[MaterialGroups].[GroupID]
,[Name]
,[SupGroup_ID]
,[ExtGroup_ID]
FROM [dbo].[MaterialGroups]
left outer join [dbo].[MaterialGroups_Extend]
ON [dbo].[MaterialGroups].[GroupID]=[dbo].[MaterialGroups_Extend].[GroupID]
Run Code Online (Sandbox Code Playgroud)
如上所述,新的附加表尚未填充,这就是左外连接的原因,但如果你有不同的想法,请告诉我.
触发:
CREATE TRIGGER [dbo].[UpdateTriggerJG] ON [dbo].[JoinedGroups]
INSTEAD OF Update
AS
BEGIN
IF EXISTS (SELECT * FROM [dbo].[MaterialGroups_Extend] E,inserted I WHERE E.[GroupID] = I.[GroupID])
BEGIN
UPDATE [dbo].[MaterialGroups_Extend]
SET [SupGroup_ID] = I.[SupGroup_ID]
,[ExtGroup_ID] = I.[ExtGroup_ID]
FROM [Buran].[dbo].[MaterialGroups_Extend] E,inserted I
WHERE E.[GroupID] = I.[GroupID]
END
ELSE
BEGIN
INSERT INTO [dbo].[MaterialGroups_Extend]
([GroupID]
,[SupGroup_ID]
,[ExtGroup_ID])
SELECT [GroupID]
,[SupGroup_ID]
,[ExtGroup_ID]
FROM inserted
END
UPDATE [dbo].[MaterialGroups] …Run Code Online (Sandbox Code Playgroud) 混合中的两个表格:
项目
| item_id | user_id | data |
----------------------------
| 10 | 100 | A |
| 11 | 100 | C |
| 12 | 101 | E |
| 13 | 101 | G |
Run Code Online (Sandbox Code Playgroud)
item_detail
| id | item_id | ignore | detail1 | detail2 | detail3 | detail4 |
-----------------------------------------------------------------
| 1 | 10 | 0 | h1 | h2 | h3 | h4 |
| 2 | 10 | 0 | g1 | g2 …Run Code Online (Sandbox Code Playgroud) 我很难在phpMyAdmin中创建一个视图.我有一个名为的数据库myDB和一个名为的表myTable.
在phpMyAdmin中,我单击SQL选项卡,输入:
SHOW CREATE VIEW myView;
Run Code Online (Sandbox Code Playgroud)
我得到这个错误MySQL说:
#1146 - Table 'myTable.myView' doesn't exist
Run Code Online (Sandbox Code Playgroud)
我根本不理解这个错误信息,当然它不存在,否则我为什么要首先创建它?为什么mySQL不允许我创建它?如何创建视图?
谢谢
我正在举办一个活动,需要多个人访问BigQuery,我希望他们向我发送证明他们可以访问的证据:
用户如何证明其特定的电子邮件帐户有权访问BigQuery?
我想知道我们是否可以构建具有授权视图和加密功能的解决方案。
我想在 PostgreSQL 中创建只读视图。我们可以在 Oracle 中创建,但在 PostgreSQL 中无法创建。
我尝试创建只读视图,但在 READ ONLY 处出现语法错误。
CREATE OR REPLACE VIEW VIEW NAME()
from table names
where filter condition1=filter
condition2
with READ ONLY;
Run Code Online (Sandbox Code Playgroud)
但是READ ONLY在 PostgreSQL 中不起作用。如何在 PostgreSQL 中创建只读视图?
sql-view ×10
sql ×5
mysql ×4
database ×2
phpmyadmin ×2
cross-apply ×1
encryption ×1
postgresql ×1
select ×1
sql-server ×1
sqlite ×1
subquery ×1
t-sql ×1
triggers ×1