首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有限制的mysqldump和-按主订单

问有限制的mysqldump和-按主订单
EN

Database Administration用户
提问于 2016-05-13 16:51:28
回答 1查看 9K关注 0票数 5

我想使用mysqldump从数据库中检索X第一行(其中" first“按主键排序)。

我试图以以下方式使用mysqldump:

mysqldump [connection-info] -where"1=1 LIMIT 40" --order-by-primary database table >> file.sql

(这是在一个为不同表运行不同配置的脚本中)

现在,问题是,该命令创建了以下查询:

SELECT /*!40001 SQL_NO_CACHE */ * FROM表WHERE 1=1 LIMIT 40 ORDER BY primary_key

是一个无效的查询,我需要将LIMIT 40放在ORDER BY语句之后。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2016-05-13 17:52:10

我猜你不能和--order-by-primary结合使用极限

一种方法是在-where参数中定义顺序。如果您知道表的主键:

代码语言:javascript
复制
mysqldump -u lelle -p -w"1 = 1 order by <primary key> LIMIT 40" <database> <table>

注意,<primary key>是主键中列的位置保持器。

如果您事先不知道主键,可以使用INFORMATION_SCHEMA来确定:

代码语言:javascript
复制
select GROUP_CONCAT(column_name SEPARATOR ',') 
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
where CONSTRAINT_NAME = 'PRIMARY' 
  and CONSTRAINT_SCHEMA = ... and table_name = ...;

然后使用mysqldump中的信息。

票数 8
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/138499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档