一、原理层面 这个错误发生在mysql 5.7 版本及以上版本会出现的问题: mysql 5.7版本默认的sql配置是:sql_mode="ONLY_FULL_GROUP_BY",这个配置严格执行了"SQL92标准"。 很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。 二、sql层面 在sql执行时,出现该原因: 简单来说就是:输出的结果是叫target list,就是select后面跟着的字...
简述InstallShield已经内建了对MySQL和Oracle的支持。但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报错。一般来说,数据库脚本只保证通过官方客户端测试即可,同时维护一份供IS执行的脚本费时费力。因此,考虑安装程序对两数据库的支持通过官方客户端实现。MySQL function InstallMySQLComponent(szComponent)NUMBER nResult;STRING szServer,szDB,szUse...
数据量小的时候可以把sql语句内容粘贴执行,但是文件很大的时候,这样执行效率很慢很慢,需要使用source执行sql文件1、客户端连接mysql数据库[root@iZbp1bb2egi7w0ueys548qZ ~]# mysql -h rm-k1h7gjp9s3dd5c8a7.mysql.rds.aliyuncs.com -u root -p回车之后会输入数据库密码 2、切换数据库 use e_user;3、执行sql文件,/usr/t_user_alpha.sql路径是mysql客户端的路径,mysql命令行中输入路径按Tab键是不会自动补全的,需要自己敲My...
直接上代码:@ECHO OFF SET dbhost=主机名(例如:127.0.0.1)SET dbuser=用户名(例如:root)SET dbpasswd=用户密码(例如:root)SET dbName=数据库名称(例如:test)SET sqlpath=%~dp0(此语句可以保证.bat同级目录下的.sql文件能被找到)set sqlfile=update.sql(需要执行执行sql的文件)进入mysql安装路径的bin目录下,如果配置了环境变量则不需要此语句(例如:cd /d C:\Program Files\MySQL\MySQL Server 5.5\bin)::执行SQL脚...
CREATEPROCEDURE `sp_delete_pushmsg_data`()
BEGINdeclare l_delete_date varchar(16);
declare l_state_date varchar(16);
declare l_dutyno int;
declare l_row_cnt intDEFAULT0;
declare rn intdefault0;
declare i intdefault0;
set l_dutyno=101;
set l_delete_date=date_format(DATE_ADD(now(),INTERVAL -30day),‘%Y-%m-%d‘); /*删除90天之前的*/set l_state_date=date_format(now(),‘%Y%m%d‘);s...
在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可。 开启mysql的日志log方法: windows环境下的配置方法: 我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL)) 找到my.ini,我的是在“G:\Program Files (x86)\MySQL\MySQL Server 5.0”目录下, 找到[mysqld],在下面添加: log=存放日志的路径/my.log 我的配置值: ...
在项目开发里面总是要查看后台执行的sql语句,mysql数据库也不例外,它的查看方式大家一般喜欢使用 showprocesslist; 命令来解决 在项目开发里面总是要查看后台执行的sql语句,mysql数据库也不例外,它的查看方式大家一般喜欢使用 showprocesslist; 命令来解决,通过里面输出结果的字段解释中可以分析执行了的sql语句类型,但不太适合一般的初级使用者,,因此通过日志文件查看sql语句是最直接的方法。
首先你需要创建一个日志文件...
bitsCN.com
在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可。 开启mysql的日志log方法: windows环境下的配置方法: 我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL)) 找到my.ini,我的是在“G:/Program Files (x86)/MySQL/MySQL Server 5.0”目录下, 找到[mysqld],在下面添加: log=存放日志的路径/my.log 我...
-- show processlist;
或者:
-- select * from information_schema.`PROCESSLIST` where info is not null;
2、开启日志模式
-- 1、设置
-- SET GLOBAL log_output = ‘TABLE‘;SET GLOBAL general_log = ‘ON‘; //日志开启
-- SET GLOBAL log_output = ‘TABLE‘; SET GLOBAL general_log = ‘OFF‘; //日志关闭
-- 2、查询
SELECT * from mysql.general_log ORDER BY event_time DESC;
-- 3、清空表(delete对于这个表,不允...
?1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。
-- use information_schema;
-- show processlist;
或者:
-- select * from information_schema.`PROCESSLIST` where info is not null;
2、开启日志模式
-- 1、设置
-- SET GLOBAL log_output = TABLE;SET GLOBAL general_log = ON; //日志开启
-- SET GLOBAL log_output = TABLE; SET GLOBAL general_...
-- 1、设置-- SET GLOBAL log_output = TABLE; SET GLOBAL general_log = ON;-- SET GLOBAL log_output = TABLE; SET GLOBAL general_log = OFF;
-- 2、查询SELECT * from mysql.general_log ORDER BY event_time DESC
-- 3、清空表(delete对于这个表,不允许使用,只能用truncate)-- truncate table mysql.general_log;
1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。
-- use information_schema;
-- show processlist;
或者:
-- select * from information_schema.`PROCESSLIST` where info is not null;
2、开启日志模式
-- 1、设置
-- SET GLOBAL log_output = TABLE;SET GLOBAL general_log = ON; //日志开启
-- SET GLOBAL log_output = TABLE; SET GLOBAL general_l...
今天写了一个小程序,很小很小,只不过是能够建立php与mysql的链接,并且实现简单的SQL语句。 新手初试,还请各路高手多多指导。 程序源代码如下: 代码如下:<?php $conn = mysql_connect("localhost","root","") or die ("wrong!"); $sel=mysql_select_db("mydb",$conn); $sql="INSERT INTO `mydb`.`test` ( `id` , `uid` , `regdate` , `remark` ) VALUES ( , php200, now( ) , dddd ) "; $que=mysql_query($sql,$conn); if($qu...
在终端使用mysql执行语句时,我们一般先进入mysql,然后再在里面执行sql语句。例如:mysql -uroot
mysql> use mydb;
mysql> select * from user;...如果我们需要进行某些表的监控,并保存执行后的查询结果,需要手动复制到文件,这样影响工作效率。 终端执行sql因此提供以下方法,可以不用进入mysql,而是直接在终端使用shell调用mysql执行sql语句。mysql 提供了 -e 参数用于直接在终端执行语句,并输出。例如:mysql -uroot -e se...
我的情况:
1.由于外键较多,插入数据时,提前关闭外键(SET FOREIGN_KEY_CHECKS=0)。
2.所使用的sql语句中,有外键绑定到其他表中,所以无法从php页面插入。
原因分析:
SET FOREIGN_KEY_CHECKS=0,此指令只对单一数据库用户有效,即使用该语句的用户有效,可以在忽略外键的情况下插入数据。
经验总结:
对于一些特殊操作,修改用户权限,应该及时回复正常状态,也就是说
SET FOREIGN_KEY_CHECKS=0;
sql语句
SET FOREIGN_KEY_CHEC...