Questions tagged «mysql»

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

10
授予数据库“所有”特权
我已经创建了数据库,例如“ mydb”。 CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH'; GRANT ALL ON mydb.* TO 'myuser'@'%'; GRANT ALL ON mydb TO 'myuser'@'%'; GRANT CREATE ON mydb TO 'myuser'@'%'; FLUSH PRIVILEGES; 现在,我可以从任何地方登录数据库,但是无法创建表。 如何授予该数据库和(将来)表的所有特权。我无法在“ mydb”数据库中创建表。我总是得到: CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin); …


16
MySQL错误1093-无法在FROM子句中指定目标表进行更新
story_category我的数据库中有一个表,其中的条目已损坏。下一个查询返回损坏的条目: SELECT * FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 我试图删除它们执行: DELETE FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 但是我得到了下一个错误: #1093-您无法在FROM子句中指定目标表'story_category'进行更新 我该如何克服呢?


30
#1071-指定的密钥太长;最大密钥长度为767字节
当我执行以下命令时: ALTER TABLE `mytable` ADD UNIQUE ( `column1` , `column2` ); 我收到此错误消息: #1071 - Specified key was too long; max key length is 767 bytes 有关column1和column2的信息: column1 varchar(20) utf8_general_ci column2 varchar(500) utf8_general_ci 我认为varchar(20)只需要21个字节,而varchar(500)只需要501个字节。因此,总字节数是522,少于767。那么为什么收到错误消息? #1071 - Specified key was too long; max key length is 767 bytes

8
如何在MySQL中缩小/清除ibdata1文件
我在localhost中将MySQL用作在R中执行统计信息的“查询工具”,也就是说,每次运行R脚本时,我都会创建一个新的数据库(A),创建一个新的表(B),然后将数据导入B ,提交查询以获取所需信息,然后删除B并删除A。 对我来说,它工作正常,但是我意识到ibdata文件的大小正在迅速增加,我没有在MySQL中存储任何内容,但是ibdata1文件已超过100 MB。 我在设置中使用了或多或少的默认MySQL设置,是否可以在固定的时间后自动收缩/清除ibdata1文件?
561 mysql  database  innodb 

5
MySQL字符串替换
我有一列包含网址(ID,网址)的列: http://www.example.com/articles/updates/43 http://www.example.com/articles/updates/866 http://www.example.com/articles/updates/323 http://www.example.com/articles/updates/seo-url http://www.example.com/articles/updates/4?something=test 我想将“更新”一词更改为“新闻”。是否可以使用脚本来做到这一点?
559 mysql  replace 

9
使用mysqldump跳过某些表
有没有办法限制来自mysqldump命令的某些表? 例如,我将使用以下语法仅转储table1和table2: mysqldump -u username -p database table1 table2 > database.sql 但是,有没有类似的方法来转储除 table1和table2 之外的所有表?我没有在mysqldump文档中找到任何东西,所以暴力破解(指定所有表名)是唯一的方法吗?
556 sql  mysql  database  mysqldump 

17
如何从mysqldump恢复转储文件?
我获得了一个MySQL数据库文件,需要将其还原为Windows Server 2008计算机上的数据库。 我尝试使用MySQL Administrator,但出现以下错误: 所选文件是由mysqldump生成的,无法由该应用程序还原。 我该如何工作?
542 mysql  sql  database 


10
何时使用MongoDB或其他面向文档的数据库系统?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我们提供了一个用于视频和音频剪辑,照片和矢量图像的平台。我们从MySQL作为数据库后端开始,最近加入了MongoDB来存储文件的所有元信息,因为MongoDB更符合要求。例如:照片可能具有Exif信息,视频也可能具有音轨,我们也想在其中存储元信息。视频和矢量图形不共享任何常见的元信息等。因此,我知道MongoDB非常适合存储此非结构化数据并使其可搜索。 但是,我们将继续开发平台并添加功能。现在,下一步就是为我们的用户提供一个论坛。现在出现的问题是:使用MySQL数据库,这对于存储论坛和论坛帖子等是一个不错的选择,还是为此使用MongoDB? 所以问题是:何时使用MongoDB以及何时使用RDBMS。如果可以选择的话,您会选择mongoDB还是MySQL?为什么选择它?
516 mysql  mongodb 

12
如何在MySQL中执行正则表达式替换?
我有一张约有50万行的表格;varchar(255)UTF8列filename包含一个文件名; 我正在尝试从文件名中删除各种奇怪的字符-以为我会使用字符类: [^a-zA-Z0-9()_ .\-] 现在,MySQL中是否有一个函数可以让您通过正则表达式进行替换?我正在寻找与REPLACE()函数类似的功能-简化示例如下: SELECT REPLACE('stackowerflow', 'ower', 'over'); Output: "stackoverflow" /* does something like this exist? */ SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-'); Output: "-tackover-low" 我知道REGEXP / RLIKE,但那些只检查是否有匹配,没有什么比赛是。 (我可以做一个“ SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'”从PHP脚本,做了preg_replace,然后“ UPDATE foo ... WHERE pkey_id=...”,但看起来像一个不得已的缓慢和丑陋的黑客)
515 mysql  regex  mysql-udf 

13
在MySQL中加入联接删除
这是创建我的表的脚本: CREATE TABLE clients ( client_i INT(11), PRIMARY KEY (client_id) ); CREATE TABLE projects ( project_id INT(11) UNSIGNED, client_id INT(11) UNSIGNED, PRIMARY KEY (project_id) ); CREATE TABLE posts ( post_id INT(11) UNSIGNED, project_id INT(11) UNSIGNED, PRIMARY KEY (post_id) ); 在我的PHP代码中,删除客户端时,我要删除所有项目帖子: DELETE FROM posts INNER JOIN projects ON projects.project_id = posts.project_id …
501 mysql 

11
MySQL-基于SELECT查询的UPDATE查询
我需要检查(从同一张表中)基于日期时间的两个事件之间是否存在关联。 一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间。 如果第一个事件在第二个事件之前完成,那么我想将它们链接起来。 到目前为止,我有: SELECT name as name_A, date-time as end_DTS, id as id_A FROM tableA WHERE criteria = 1 SELECT name as name_B, date-time as start_DTS, id as id_B FROM tableA WHERE criteria = 2 然后我加入他们: SELECT name_A, name_B, id_A, id_B, if(start_DTS > end_DTS,'VALID','') as validation_check FROM tableA LEFT …
501 mysql  select  sql-update 

4
MySQL:@variable与变量。有什么不同?
在另一个问题中,我发布了一个人告诉我,两者之间是有区别的: @variable 和: variable 在MySQL中。他还提到了MSSQL如何具有批处理范围,而MySQL如何具有会话范围。有人可以为我详细说明吗?
500 mysql  sql  variables 

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.