php 实现MySQL里动态视图代码

系统通过某种方法生成一个唯一的ID(可以是应用端,也可以是数据库教程的uuid),然后将试图与这个id进行关联即可。

代码:

drop table if exists test;
create table test (
id int not null,
name varchar(20) not null
);
insert into test values(1,'test1');
insert into test values(1,'test11');
insert into test values(1,'test111');
insert into test values(2,'test2');
insert into test values(2,'test22');
drop function if exists getSpid;
delimiter |
CREATE function getSpid()
RETURNS int
RETURN @spid;
|
delimiter ;
drop view if exists v_test;
create view v_test as
select * from test where id=getSpid();
-- 测试代码
-- 开启session 1
set @spid=1;
select * from v_test;
-- 开启session 2
set @spid=2;
select * from v_test;

说明:

将生成的ID保持到session变量里面

然后建立自定义函数,返回这个变量

最后在视图里面调用这个函数

时间: 2024-09-22 09:39:49

php 实现MySQL里动态视图代码的相关文章

MySQL里动态视图的实现

需求: 用户为C/S结构,每个用户根据角色不同,能看到不同的数据.系统会根据某个标识生成一个数据内容,然后通过统一的视图来访问. 要求,不能修改视图,也不能在试图外面再嵌套一层查询. 设计: 系统通过某种方法生成一个唯一的ID(可以是应用端,也可以是数据库的uuid),然后将试图与这个id进行关联即可. 代码: drop table if exists test; create table test ( id int not null, name varchar(20) not null );

MySQL存储过程里动态SQL的使用

MySQL的存储过程不好用,一般在应用开发过程中不建议使用.但有时候在数 据迁移等环境中,特别涉及到复杂点的逻辑处理,就需要存储过程的配合了,当 然,用其他语言写程序实现也是可以的,不过效率估计没有直接在数据库中操作 高. 有时候数据所在的表是不确定的,需要根据实际情况临时决定表名, 这时候就是动态SQL的用武之地了,以下示例展示了在一次数据导出的过程中使用 动态SQL的存储过程例子: delimiter // CREATE PROCEDURE `proc_rt_imp_group`() BEG

NodeJs——(15)动态视图助手

(38)动态视图助手 express版本:4.13.4 ①作用:假如我们需要一个变量,在不同地方的模板(jade文件)都需要调用. 显然,我们不应该使用全局变量(因为可能会带来污染): 事实上,我们需要的是仅仅在模板中起作用的变量,因此视图助手的作用就在这里了.     ②流程: [1]首先,调用express模块,就像我们之前做的那样(事实上,不需要额外声明,当我们使用express框架的时候自然会调用它):   [2]按照正常情况,我们需要进行路由处理,当使用视图助手时,有一件很重要的事情,

建立Apache+PHP3+MySQL驱动动态网站

Apache是目前应用最广的Web服务器,PHP3是一种类似ASP的脚本语言,目前的发展趋势大有超过Perl之势,而MySQL是一个轻量级的数据库系统,特别是用于网站建设,这3个软件均是自由软件,是架设数据库驱动的动态网站的最佳排档. 本文只介绍这3个软件的安装,有关PHP和MySQL的编程和使用请见其他资料. 一.如何获得软件? 获得这3个软件包的方法很多,目前大多数Linux分发都捆绑了这3个软件包,如RedHat.本文介绍的安装方法是基于从这些软件的官方站点上下载获得的软件包进行的,针对R

vc获得sql里数据-vc获得mysql里int数据的语句

问题描述 vc获得mysql里int数据的语句 我知道vc获取mysql里char类型数据的语句是例如(工号是char类型时):varFld = pRs->Fields->GetItem(""max(工号)"")->Value;但是如果是获取int类型就不行了,例如(工号是int类型),上面的语句链接编译没错,运行出错.求代码.谢谢啦.没有Q币了,麻烦各位了 解决方案 你可以用字符串方式获取以后,自己再转换会int, atoi() 解决方案二: 我

mysql基础之视图

原文:mysql基础之视图 在查询中,我们经常把查询结果 当成临时表来看. View是什么? View可以看一张虚拟表. 是表通过某种运算得到的一个投影. 既然视图只是表的某种查询的投影,所以主要步骤在于查询表上.查询的结果命名为视图就可以了. 视图与表的关系 视图是表的查询结果,自然表的数据改变了,影响视图的结果.   视图改变了呢? 0: 视图增删改也会影响表 1: 但是,视图并是总是能增删改的.   视图某种情况下,是可以修改的. 要求: 视图的数据和表的数据 11对应. 就像函数的映射.

为什么 mysql 里的 ibdata1 文件不断的增长?

ibdata1 file 我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题. 当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 -- 就是说磁盘快要满了. 一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用.而你已经启用了 innodb_file_per_table,所以问题是: ibdata1存了什么? 当你启用了 innodb_file_per_table,表被存储在他们自己的表空间里,但是共

PHP实现动态执行代码的方法_php技巧

本文实例讲述了PHP实现动态执行代码的方法.分享给大家供大家参考,具体如下: 这里介绍的PHP动态执行,即在页面上直接输入代码,点击执行,返回执行结果 方法很简单,主要使用了: $newfunc = create_function('', $code); 函数来实现. 代码如下: <?php $code = 'return "no code!";'; if (isset($_POST['code']) && $_POST['code'] != '') { $cod

新手想小试牛刀,已经建立好mysql数据库表添加了几行数据.现在想通过java web吧mysql里的几条数据显示到网页上!

问题描述 本人纯新手,希望大家多多包涵已经在本地创建了mysql数据库,自己写了几条数据.我的想法是通过本地网页上的随便一个按钮,点过以后就显示本地mysql已储存的数据.上学的时候学过java,PHP和其他什么的我没见过,所以请大家告诉我java的实现方法和步骤.已经安装好JDKTomcatMySQLEclipse(JEE版)在百度里看别人在mysql里随便写几个测试数据后,然后又写了个.JSP就可以再网页里显示数据了,看着简单,但是搬运修改下后自己的机器上跑不了.... 解决方案 解决方案二