MySql怎样跟踪SQL脚本执行?
其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可。开启mysql的日志log方法:windows环境下的配置方法:
我使用的版本:Version:5.0.37-community-nt-log(MySQLCommunityEdition(GPL))找到my.ini,我的是在“G:\ProgramFiles(x86)\MySQL\MySQLServer5.0”目录下,找到[mysqld],在下面添加:
log=存放日志的路径/my.log
mysql存储过程中如何执行ddl语句?
在MySQL存储过程中,可以使用`SET @sql_text = 'DDL语句';`来定义一个变量,然后使用`PREPARE stmt FROM @sql_text;`来预处理这个变量中的DDL语句。最后,使用`EXECUTE stmt;`来执行这个预处理的DDL语句。
以下是一个示例:
```sql
DELIMITER $$
CREATE PROCEDURE ExecuteDDL()
BEGIN
-- 定义一个变量,用于存储DDL语句
SET @sql_text = 'CREATE TABLE test_table (id INT, name VARCHAR(255));';
-- 预处理DDL语句
图片来源:网络
PREPARE stmt FROM @sql_text;
-- 执行预处理的DDL语句
EXECUTE stmt;
-- 如果需要检查执行结果,可以添加以下代码:
-- DECLARE result INT;
-- GET DIAGNOSTICS result = ROW_COUNT();
-- SELECT result;
END$$
DELIMITER ;
```
在这个示例中,我们创建了一个名为`ExecuteDDL`的存储过程,该过程定义了一个变量`@sql_text`,并使用它来存储一个创建表的DDL语句。然后,我们使用`PREPARE`和`EXECUTE`语句来预处理和执行这个DDL语句。
mysql如何把单条update语句批量执行?
when和then语句就可以实现批量更新语句
UPDATE table_own SET
cloumn_own= CASE id
WHEN 1 THEN 'a'
WHEN 2 THEN 'b'
WHEN 3 THEN 'c'
END
WHERE id IN (1,2,3);
这个批量更新语句的意思就是说,更新cloumn_own字段,如果id=1 则cloumn_own=a,如果id=2 则cloumn_own=b,如果id=3 则cloumn_own=c
记住,其实end 后面的where语句是不可必需的,但最好是带上
如果不加where条件,会使整个表的数据更新,不满足条件的对应的值会设置成默认值(导致你执行的前面n-1次都是无效,保留的是第n次)
带上where条件的话,就不会出现这种情况了