Tag: MySQL

如何在MySql触发器中中止INSERT操作?

我有一个表包含一个URL和一个string表示其参数。 问题是我想要一个url和一个参数string是表的唯一约束 – 又没有条目可以有相同的URL和参数string。 参数string可以是任意长度(长度大于800bytes,这是MySql键的最大长度,所以我不能使用Unique(url,params),因为它会引发错误…)。 我想过使用触发器来做到这一点,但是如果触发器发现插入操作将要插入重复条目,我该如何抛出exception/引发错误? 我想我想有一个MySqlException抛出像MySql重复的主键等,所以我可以在我的C#代码捕获它。 我在触发器中有两件我需要得到的帮助:…中止抛出exception到C#…如何抛出exception等C#? …允许插入… – 如果没有重复的条目,我该如何允许插入? 下面是触发器代码: CREATE TRIGGER urls_check_duplicates BEFORE INSERT ON urls FOR EACH ROW BEGIN DECLARE num_rows INTEGER; SELECT COUNT(*) INTO num_rows FROM urls WHERE url = NEW.url AND params = NEW.params; IF num_rows > 0 THEN … ABORT/throw exception to C# … ELSE … Allow insert […]

closuresmysql连接重要吗?

closuresmysql连接效率是否明智至关重要,还是在php文件运行后自动closures?

避免重复进入mysql数据库的最佳方法

我有一个表3列 – id(pk),pageId(fk),名称。 我有一个PHP脚本,转储大约5000个logging到表中,大约一半是重复的,具有相同的pageId和名称。 pageId和name的组合应该是唯一的。 什么是最好的方式来防止重复被保存到表中,因为我循环通过脚本在PHP?

LAST_INSERT_ID()MySQL

我有一个MySQL问题,我认为一定很容易。 当我运行下面的MySql查询时,我需要从table1返回最后一个插入的ID: INSERT INTO table1 (title,userid) VALUES ('test',1); INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1); SELECT LAST_INSERT_ID(); 正如你可以理解的,当前的代码将返回table2的最后一个INSERT ID而不是table1,即使我插入table2之间,如何从table1获取id?

在MySQL中删除后自动递增

我有一个主键字段有AUTO_INCREMENT的MySQL表。 在阅读其他文章后,我注意到有同样问题和不同答案的人。 有些人build议不要使用这个function,有些则说不能“固定”。 我有: table: course fields: courseID, courseName 例如:表中logging的数量:18.如果我删除logging16,17和18 – 我期望input的下一个logging具有16的courseID,但是它将是19,因为最后input的courseID是18。 我的SQL知识并不奇妙,但无论如何刷新或更新这个计数与查询(或phpMyAdmin接口中的设置)? 该表格将与数据库中的其他人相关联。 鉴于所有的build议,我决定忽略这个“问题”。 我会简单地删除和添加logging,同时让自动增量做它的工作。 我想这个数字并不重要,因为它只被用作唯一标识符,并没有(如上所述) 业务意义。 对于那些可能与我原来的post混淆的人:我不想用这个字段来知道我有多lesslogging。 我只是希望数据库看起来整洁,并且有更多的一致性。

在MySQL查询中,为什么使用连接而不是在哪里?

好像要合并两个或多个表,我们可以使用join或where。 彼此有什么优势?

如何启用MySQL查询日志?

如何启用logging从客户端收到的每个SQL查询语句的MySQL函数以及查询语句提交的时间? 我可以做到这一点在phpmyadmin或NaviCat? 我如何分析日志?

我应该什么时候使用MySQLi而不是MySQL?

有人能为我澄清一下使用MySQLi代替MySQL的优缺点吗? 有没有我不应该使用MySQLi的情况? 我需要以不同的方式configuration我的服务器才能使用MySQLi吗? 例如,我是否需要升级Apache或PHP,以便我可以支持MySQLi?

MySQL中的表名是否区分大小写?

MySQL中的表名是否区分大小写? 在我的Windows开发机器上,我所拥有的代码能够查询我的表,这些表看起来都是小写的。 当我部署到我们的数据中心的testing服务器时,表名似乎以大写字母开头。 我们使用的服务器都在Ubuntu上。

在MySQL中生成一个整数序列

我需要做一个表/结果集/任何具有整数n到m的连接。 有没有一个简单的方法来获得,而不只是build立表? (顺便说一下,这种types的结构被称为“元查询”?) mn是有限的(<1000's)