我有一个Django的Web应用程序,使用默认的自动递增的正整数作为主键。 此密钥在整个应用程序中使用,并经常插入到URL中。 我不想公开这个号码,以便他们可以猜测我的数据库中的用户或其他实体的数量。 这是一个频繁的要求,我已经看到类似的问题与我的答案。 大多数解决schemebuild议散列最初的主键值。 但是,这些答案都不符合我的需要。 这些是我的要求: 我想保持主键字段types为整数。 我也不希望在每次读取或写入数据库或与数据库进行比较时不必散列/取消散列该值。 这似乎很浪费这样做只是一次:当logging最初插入数据库 哈希/encryption函数不需要是可逆的,因为我不需要恢复原始的顺序密钥。 哈希值只需要是唯一的。 哈希值需要唯一唯一的表 – 不普遍唯一。 散列值应尽可能短。 我想避免超长的(20个以上的字符)url 什么是最好的方法来做到这一点? 以下工作? def hash_function(int): return fancy-hash-function # What function should I use?? def obfuscate_pk(sender, instance, created, **kwargs): if created: logger.info("MyClass #%s, created with created=%s: %s" % (instance.pk, created, instance)) instance.pk = hash_function(instance.pk) instance.save() logger.info("\tNew Pk=%s" % instance.pk) class […]
所有。 我有几天遇到这个问题,这是详细的堆栈信息: org.springframework.dao.RecoverableDataAccessException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 18,940 milliseconds ago. The last packet sent successfully to the server was 18,918 milliseconds ago. ### The error may involve com.tuan800.searchtask.model.dao.mybatis.RelationDao.updateSuggest-Inline ### The error occurred while setting parameters ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure […]
我目前有一个主键ID设置为auto increment 。 它不断递增ON DUPLICATE KEY 。 例如: ID | field1 | field2 1 | user | value 5 | secondUser | value 86 | thirdUser | value 从上面的描述中,您会注意到在该表中有3个input,但是由于每次更新都会自动增加,所以第三个input的ID为86。 有没有办法避免这种情况? 以下是我的mySQL查询的样子: INSERT INTO table ( field1, field2 ) VALUES (:value1, :value2) ON DUPLICATE KEY UPDATE field1 = :value1, field2 = :value2 这就是我的桌子的样子 CREATE TABLE IF […]
有人可以告诉我为什么这不起作用,当我试图切换我的旧SQL到sqli: $query = "SELECT * FROM `product_category`"; $result = mysql_query($query, $connect) or die("could not perform query: " . mysql_error()); $num_rows = mysql_num_rows($result); for ($i=0; $i < $num_rows; $i++) { $ID = mysql_result($result,$i,"ID"); $name = mysql_result($result,$i,"name"); $description = mysql_result($result,$i,"description"); 至: $query = ("SELECT * FROM `product_category`"); $result = mysqli_query($connect, $query) or die("could not perform query"); $num_rows […]
我想从MySQL表中获取所有列名,循环访问每个列名,然后使用这些列名作为variables运行存储过程。 一些事情的影响: colnames = get column names from table for each colname if something changed then do something else do something else 它看起来像SHOW COLUMNS FROM myTable会给我的列名,但我怎么会得到一个循环的列名? 我真的想在使用本机SQL的存储过程中运行所有这些。 由于我仍然在学习MySQL的复杂性,这对我的项目确实有帮助。 谢谢你的帮助。
这是我的SQL: SELECT COUNT(id), CONCAT(YEAR(created_at), '-', MONTH(created_at), '-', DAY(created_at)) FROM my_table GROUP BY YEAR(created_at), MONTH(created_at), DAY(created_at) 即使在没有创buildID的日子里,我也想要显示一行。 现在我错过了几天没有活动的日子。 任何想法如何改变这个查询来做到这一点?
我试图用PHP和MySQL构build一个购物车。 我在MySQL中的数据库是utf8,我的数据库表是utf8, 我怎样才能使用希伯来字符?
我有一个拥有6000万条logging的数据库。 每个条目包含: ID DataSourceID的 一些数据 约会时间 我需要从某个月份select条目。 每个月包含大约200万条目。 select * from Entries where time between "2010-04-01 00:00:00" and "2010-05-01 00:00:00" (查询大约需要1.5分钟) 我也想从给定的DataSourceID中select某个月份的数据。 (大约需要20秒) 大约有50-100个不同的DataSourceIDs。 有没有办法让这个更快? 我有什么select? 如何优化这个数据库/查询? 编辑:有约。 每秒插入60-100!
嗨,我有一个INFILE我想导入,但date的forms是: AADR,20120403,31.43,31.43,31.4,31.4,1100 AAU,20120403,2.64,2.65,2.56,2.65,85700 AAVX,20120403,162.49,162.49,154.24,156.65,2200 有没有简单的方法将date转换为“2012年4月3日”,而不必做一些事先打开它的Perl脚本,转换date,然后再次写出文件? TIA !!
我给了一个客户端下面的查询删除重复的电话号码。 logging在MSSQL数据库中,但是现在他们也需要在MySQL上做这件事,并且他们报告说MySQL抱怨查询的格式。 我已经包含了一个testing表的设置与我的代码示例重复,但实际的删除查询是重要的。 我在无知和紧急的时候问这个,因为我还在忙着下载和安装MySQL,也许有人可以帮忙。 create table bkPhone ( phoneNo nvarchar(20), firstName nvarchar(20), lastName nvarchar(20) ) GO insert bkPhone values('0783313780','Brady','Kelly') insert bkPhone values('0845319792','Mark','Smith') insert bkPhone values('0834976958','Bill','Jones') insert bkPhone values('0845319792','Mark','Smith') insert bkPhone values('0828329792','Mickey','Mouse') insert bkPhone values('0834976958','Bill','Jones') alter table bkPhone add phoneId int identity delete from bkPhone where phoneId not in ( select min(phoneId) from bkPhone group by […]