Questions tagged «mysql»

MySQL是使用结构化查询语言(SQL)的免费,开放源代码关系数据库管理系统(RDBMS)。请勿将此标签用于其他数据库,例如SQL Server,SQLite等。那些是不同的数据库,它们都使用自己的SQL方言来管理数据。

13
在MySQL中删除数百万行
我最近发现并修复了我正在处理的站点中的错误,该错误导致表中数百万行数据的重复行,即使没有行,行也将非常大(仍然有数百万行)。我可以轻松找到这些重复的行,并可以运行一个删除查询来杀死它们。问题是试图一次删除这么多行会长时间锁定表,如果可能的话,我想避免这种情况。我看到的摆脱这些行而又不占用站点(通过锁定表)的唯一方法是: 编写一个脚本,该脚本将循环执行数千个较小的删除查询。从理论上讲,这将解决锁定表的问题,因为其他查询将能够使其进入队列并在删除之间运行。但是它仍然会在一定程度上增加数据库的负载,并且需要很长时间才能运行。 重命名表并重新创建现有表(该表现在为空)。然后在重命名的表上进行清理。重命名新表,重命名旧表,然后将新行合并到重命名表中。这种方式需要花费更多的步骤,但是应该以最小的中断来完成工作。这里唯一棘手的部分是,所讨论的表是报表表,因此一旦将其重命名并放了一个空表,所有历史报表都将消失,直到我将其放回原位。另外,由于要存储的数据类型,合并过程可能会有些麻烦。总的来说,这是我现在可能的选择。 我只是想知道以前是否有人遇到过这个问题,如果是的话,您如何在不关闭站点的情况下进行处理,希望对用户的干扰最小(如果有的话)?如果我使用2号或其他类似的方法,我可以将这些内容安排在深夜运行,并在第二天清晨进行合并,并且只需要提前通知用户即可,所以这不是什么大问题。我只是想看看是否有人对更好或更轻松的清理方式有任何想法。

4
PDO :: PARAM用于十进制类型?
我有2个数据库字段 `decval` decimal(5,2) `intval` int(3) 我有2个pdo查询可以更新它们。更新int的一个可以正常工作 $update_intval->bindParam(':intval', $intval, PDO::PARAM_INT); 但我无法更新小数点字段。我已经尝试了以下3种方法,但没有任何效果 $update_decval->bindParam(':decval', $decval, PDO::PARAM_STR); $update_decval->bindParam(':decval', $decval, PDO::PARAM_INT); $update_decval->bindParam(':decval', $decval); 看来问题出在数据库类型上decimal?是否有一个PDO::PARAM用于类型的字段decimal?如果没有,我该如何解决?
77 php  mysql  database  pdo 


4
如何强制MySQL将0作为有效的自动增量值
长话短说,我有一个要导入为skel样式文件的SQL文件,因此将以编程方式重复进行此操作。我可以根据需要编辑SQL文件,但我不想触摸应用程序本身。 此应用程序userid = 0用来代表匿名用户。它在数据库中还具有一个相关的(空白)条目来表示此“用户”。因此,我这行skel.sql看起来像这样: INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL); 问题在于这uid是一个auto_increment字段,从技术上讲,该字段0是无效值。或者至少,如果将其设置为0,则基本上是在告诉MySQL,“请在该字段中插入下一个ID”。 现在,我想我可以在SQL文件中添加INSERT一个UPDATE查询,但是有没有一种方法可以告诉MySQL,是的,我实际上是想插入0该字段吗?

7
如何在MySQL表中插入许多行并返回新的ID?
通常,我可以在MySQL表中插入一行并last_insert_id取回。现在,尽管如此,我想将许多行批量插入表中并获取ID数组。有人知道我该怎么做吗? 有一些类似的问题,但并不完全相同。我不想将新ID插入任何临时表;我只想找回ID数组。 我可以从批量插入中检索lastInsertId吗? 带有last_insert_id()的MySQL多行插入选择语句
77 mysql  bulkinsert 

1
比较MySQL,PostgreSQL和SQLite中的数据库列类型?(跨图)
我正在尝试找到一种在最常用的数据库之间关联列类型的方法:MySQL,PostgreSQL和SQLite。 这是到目前为止的内容,但恐怕还没有完成,我需要一些经验丰富的人来帮助我完成所有遗漏的类型。 MySQL PostgreSQL SQLite TINYINT SMALLINT INTEGER SMALLINT SMALLINT MEDIUMINT INTEGER BIGINT BIGINT BIT BIT INTEGER _______________________________________________________ TINYINT UNSIGNED SMALLINT INTEGER SMALLINT UNSIGNED INTEGER MEDIUMINT UNSIGNED INTEGER INT UNSIGNED BIGINT BIGINT UNSIGNED NUMERIC(20) _______________________________________________________ DOUBLE DOUBLE PRECISION REAL FLOAT REAL REAL DECIMAL DECIMAL REAL NUMERIC NUMERIC REAL _______________________________________________________ BOOLEAN …

5
MySQL错误1264:列的值超出范围
正如我SET在MySQL的表中这样显示cust_fax: cust_fax integer(10) NOT NULL, 然后我插入这样的值: INSERT INTO database values ('3172978990'); 但是然后说 “错误1264”列的值不足 我想知道错误在哪里?我的套装?或其他? 任何答案将不胜感激!
77 mysql  sql  insert  integer 

11
带有mysql2和rails3的RuntimeError(捆绑软件)
我得到这个错误 `establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError) from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord- 这是整个错误以及我的配置和gemfile的转储。

7
MYSQL:如何在mysql中将整个行从一个表复制到另一个表,而第二个表则有一个额外的列?
我有两个具有相同结构的表,只不过有一个列...表2有我要在其中插入CURRENT_DATE()的另一列 我想将所有值从table1复制到table2。 如果我用 INSERT INTO dues_storage SELECT * FROM dues WHERE id=5; 它将引发错误,指出列数的差异。 我对此有两个问题: 我该如何解决? 以及如何在同一条语句的表2中添加附加日期列(CURRENT_DATE())的值?
76 mysql 

5
MySQL :(产品)价格的首选列类型?
在MySQL中,用于存储产品价格(或一般货币)的首选列类型是什么?Google得知我经常使用DECIMAL FLOAT,但我想知道哪种更好。 我存储的价格范围是0.01到25.00。当然,更高的值也是可能的。(注意:我不是在要求复制粘贴代码,我只是向您提供更多信息,可以帮助您形成更完整的答案)。 谢谢
76 mysql 

14
MySQL安装:错误:无法构建gem本机扩展
我正在尝试将MySQL安装到最新版本,因为某些安装错误。我运行命令,gem install mysql并且收到以下信息: 构建本机扩展。这可能需要一段时间...错误:安装mysql时出错:错误:无法生成gem本机扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH模式下不安全的世界可写目录/ usr / bin,模式040777 extconf.rb:4:警告:PATH模式040777 extconf.rb中不安全的世界可写目录/ usr / bin:7:警告:PATH模式040777 mkmf.rb中的不安全世界可写目录/ usr / bin在/ System上找不到ruby的头文件/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h 宝石文件将保留安装在/Library/Ruby/Gems/1.8/gems/mysql-2.8.1中,以进行检查。结果记录到/Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 我已经搜索并尝试了很多事情,从安装特定版本到尝试重新安装ruby,没有任何运气。 有什么想法我可能会出错吗? 我正在尝试将MySQL安装到最新版本,因为某些安装错误。我运行命令,gem install mysql并且收到以下信息: 构建本机扩展。这可能需要一段时间...错误:安装mysql时出错:错误:无法生成gem本机扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH模式下不安全的世界可写目录/ usr / bin,模式040777 extconf.rb:4:警告:PATH模式040777 extconf.rb中不安全的世界可写目录/ usr / bin:7:警告:PATH模式040777 mkmf.rb中的不安全世界可写目录/ usr / bin在/ System上找不到ruby的头文件/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h 宝石文件将保留安装在/Library/Ruby/Gems/1.8/gems/mysql-2.8.1中,以进行检查。结果记录到/Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 我已经搜索并尝试了很多事情,从安装特定版本到尝试重新安装ruby,没有任何运气。 有什么想法我可能会出错吗? 编辑:我从我的雪豹DVD安装XCode,错误只是稍微更改为以下内容: 构建本机扩展。这可能需要一段时间...错误:安装mysql时出错:错误:无法生成gem本机扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb …

3
WAMP / MySQL错误,语言不正确
我已经重新安装了WAMP多次,实际上搜索了数百页,但无法解决此问题: 我查看了phpmyadmin配置文件,设置为: $cfg['Lang'] = 'en-utf-8'; 多次卸载(如上所述),而且似乎还没有运气。任何帮助,将不胜感激。

7
MySQL:如何在查询中的日期时间字段中添加一天
在我的表我有一个名为领域eventdate中datetime类似的格式2010-05-11 00:00:00。 我如何进行查询,以使其在一天中增加一天,eventdate例如今天是2010-05-11,我想显示inwhere子句以返回带有明天日期的所有记录。 更新: 我尝试了这个: select * from fab_scheduler where custid = 1334666058 and DATE_ADD(eventdate, INTERVAL 1 DAY) 但是不幸的是,即使我添加的间隔大于1,它也会返回相同的记录。 结果: 2010-05-12 00:00:00 但是我只想选择明天的记录。
76 mysql  sql 

3
如何将uuid作为数字存储?
根据问题的答案,即MySQL中的UUID性能,回答者建议将UUID存储为数字而不是字符串。我不太确定该怎么做。有人可以建议我吗?我的ruby代码如何处理呢?
76 mysql  uuid 

6
索引布尔字段
这可能是一个非常愚蠢的问题,但是对数据库表中的布尔字段建立索引是否会有很多好处? 在常见情况下,例如将“软删除”记录标记为非活动状态,因此大多数查询都包括WHERE deleted = 0,这将有助于对该字段进行单独索引,还是应将其与其他常见搜索字段结合使用不同的索引?
76 sql  mysql  database  indexing 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.