MYSQL存储过程,清除指前缀的定表名的数据 DELIMITER $$ DROP PROCEDURE IF EXISTS `drop_table`$$ ),)) BEGIN ) DEFAULT NULL; ) DEFAULT NULL; -- sql 语句 ) DEFAULT NULL; -- 保存获取的表名 -- 遍历数据结束标志 DECLARE done INT DEFAULT FALSE; DECLARE cur CURSOR FOR SELECT * FROM tmp_table_res…
#mysql查询特定数据库中的所有表名select table_namefrom information_schema.tableswhere table_schema='smbms' and table_type='base table';…
DROP PROCEDURE IF EXISTS Proc; DELIMITER //CREATE PROCEDURE Proc(database_name varchar(50),table_name_ varchar(50)) BEGINDROP table IF EXISTS fk_view;DROP table IF EXISTS col_view;CREATE  table fk_view (SELECT    b.TABLE_NAME 表,    b.COLUMN_NAME AS 栏…
1.MySQL 获取表名: 用“show tables”命令.在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来.其中“db”是指你的数据库的名称,比如说Tables_in_productdb. 获取某个表的字段: 用“desc tablename”命令.取得方式和上面类似. 此外,还可用MySQL数据库系统表取得,在information_schema库中有系统中的一些基础性表,比如说TABLES\COLUMNS.但一般情况下,程序只访问本库中的表,所以不…
MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再想要将数据库导出放到linux服务 器中使用时就出错了.因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办 法反过来让windows 下大小写敏感呢.其实方法是一样的,相应的更改windows中MySQL的设置就行了.     具体操作:         在MySQL的配置文件my.ini中增加一行:       …
面试被问到一个问题,假如MySQL中的关键字在查询语句中作为列明或者表名出现,应该怎么处理. 例如 select desc from t; 首先创建一张表,包含两个字段,id和desc 插入了三条数据 果然出错了,其实出现这个错误的原因是desc这个单词是MySQL数据库的关键字,所以sql语句执行到这里的时候觉得语句有问题. 处理方式,在列名字前后加上如下所示的符号 mysql> select `desc` from t; +--------------+ | desc | +--------…
背景 在MySQL中,写SQL语句的时候 ,可能会遇到 You can't specify target table '表名' for update in FROM clause 这样的错误 错误含义 它的意思是说,不能先 select 出同一表中的某些值,再 update 这个表(在同一语句中),即不能依据某字段值做判断再来更新某字段的值. 解决问题 将select出的结果再通过中间表select一遍,这样就可以解决错误了…
今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了找方法,网上主要通过sql语句来删除.自己在他的基础上写了一个php文件实现了批量删除表.事实上原理是一样的. 1.MYSQL批量删除 [1]获得批量删除的命令: Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.t…
公司的时间戳存证业务,对发版过程中间数据处理需要用到存储过程.对此做一个简短记录,以免遗忘. DROP procedure record_timestamp_deal ; ##创建存储过程 create procedure record_timestamp_deal() begin ); ; # declare existence boolean ; ##从时间戳记录表中获取ID存入游标 declare cur cursor for select id from time_stamp_log;…
1.Mysql update语句赋值嵌套select  点击(此处)折叠或打开 update a set col=(select col from a where id='5') where id>5 and id<10; 报错了 ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause 经过研究 发现是 mysql 定义update语句不能同时对同一张进行set 赋值操作,也就是说 upd…