Questions tagged «mysql»

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

10
一次性修复所有表
如何一次性检查数据库中的所有表? 而不是check table ''tablename'';一个一个地为所有表键入查询。 有没有像这样的简单命令check all?
111 mysql  sql 

3
无法更改外键约束中使用的列
尝试更改表时出现此错误。 Error Code: 1833. Cannot change column 'person_id': used in a foreign key constraint 'fk_fav_food_person_id' of table 'table.favorite_food' 这是我成功运行的CREATE TABLE STATEMENT。 CREATE TABLE favorite_food( person_id SMALLINT UNSIGNED, food VARCHAR(20), CONSTRAINT pk_favorite_food PRIMARY KEY(person_id,food), CONSTRAINT fk_fav_food_person_id FOREIGN KEY (person_id) REFERENCES person (person_id) ); 然后,我尝试执行此语句,但出现了以上错误。 ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED …
111 mysql 

9
假外键约束失败
我收到此错误消息: 第40行的错误1217(23000):无法删除或更新父行:外键约束失败 ...当我尝试放一张桌子时: DROP TABLE IF EXISTS `area`; ...定义如下: CREATE TABLE `area` ( `area_id` char(3) COLLATE utf8_spanish_ci NOT NULL, `nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL, `descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`area_id`), UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci; 有趣的是,我已经删除了模式中具有针对其的外键的所有其他表area。实际上,除area表外,数据库为空。 如果数据库中没有其他对象,它怎么可能有子行?据我所知,InnoDB不允许在其他模式上使用外键,对吗? (我什至可以运行RENAME TABLE area TO something_else命令:-?)
110 mysql  innodb 

2
为什么“ _”(下划线)与“-”(连字符)匹配?
我必须使用此查询查找PDF手册: root@localhost:test> select * from a where name like '%taz_manual%.pdf%'; +--------------------+------------------+-------------+ | name | description | size | +--------------------+------------------+-------------+ | taz-manual-1.1.pdf | Manual v1.0 TA-Z | 31351902 | | taz-manual-0.2.pdf | Manual v1.0 T1-A | 3578278 | | taz_manual-2.0.pdf | Manual v2.0 GA-X | 542578278 | etc........ +--------------------+------------------+-------------+ 132 row …
110 mysql  wildcard 

6
MySQL:事务与锁定表
我对事务与锁定表有些困惑,以确保数据库完整性,并确保SELECT和UPDATE保持同步,并且没有其他连接干扰它。我需要: SELECT * FROM table WHERE (...) LIMIT 1 if (condition passes) { // Update row I got from the select UPDATE table SET column = "value" WHERE (...) ... other logic (including INSERT some data) ... } 我需要确保没有其他查询会干扰并执行相同的操作SELECT(在该连接完成更新行之前读取“旧值”。 我知道我可以默认为LOCK TABLES table仅一次确保只有1个连接正在执行此操作,并在完成后将其解锁,但这似乎有点过头了。将事务包装在事务中是否会做同样的事情(确保没有其他连接会尝试同一进程而另一个仍在处理)?或将一个SELECT ... FOR UPDATE或SELECT ... LOCK IN SHARE MODE更好?

8
在MySQL中设置名称utf8?
我经常在使用MySQL的PHP​​脚本中看到类似的内容 query("SET NAMES utf8"); 我从来没有为任何项目都这样做,所以我对此有两个基本问题。 这仅是通过PDO完成吗? 如果不是PDO特定的事情,那么这样做的目的是什么?我意识到它正在为mysql设置编码,但是我的意思是,我从未使用过它,所以为什么要使用它?
110 php  mysql  utf-8 

3
您如何在mysql的同一张表上两次连接?
我有2张桌子。一个(域)具有域ID和域名(dom_id,dom_url)。 另一个包含实际数据,其中2列需要TO和FROM域名。因此,我有两列rev_dom_from和rev_dom_for,它们都存储来自domains表的域名ID。 简单。 现在,我需要在网页上实际显示两个域名。我知道如何通过reviews.rev_dom_for = domains.dom_url查询中的LEFT JOIN域显示一个或另一个,然后回显dom_url,这会回显rev_dom_for列中的域名。 但是,如何使它在dom_rev_from列中回显第二个域名?
110 mysql 

13
大写第一个字母。MySQL的
用MySQL的说法,有人知道这TSQL的等效性吗? 我试图将每个条目的首字母大写。 UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1)) + SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))
110 mysql  string  capitalize 

3
用于插入和更新的MySQL Fire触发器
是否可以为表的插入和更新事件触发mysql触发器? 我知道我可以做到以下几点 CREATE TRIGGER my_trigger AFTER INSERT ON `table` FOR EACH ROW BEGIN ..... END // CREATE TRIGGER my_trigger AFTER UPDATE ON `table` FOR EACH ROW BEGIN ..... END // 但是我该怎么办 CREATE TRIGGER my_trigger AFTER INSERT ON `table` AND AFTER UPDATE ON `table` FOR EACH ROW BEGIN ..... 是否可以,或者我必须使用2个触发器?两者的代码相同,我不想重复。
110 mysql  triggers 

22
使用MySQL生成随机且唯一的8个字符串
我正在开发一款涉及车辆的游戏。我有一个名为“ vehicles”的MySQL表,其中包含有关车辆的数据,包括存储车辆牌照的“ plate”列。 现在是我遇到问题的部分。在创建新车辆之前,我需要找到一个未使用的车牌-它应该是字母数字8字符的随机字符串。我是通过使用Lua(我正在使用的语言)中的while循环生成字符串并查询数据库以查看是否使用它的,从而实现了这一点。但是,随着车辆数量的增加,我希望这会变得目前效率更低。因此,我决定尝试使用MySQL查询解决此问题。 我需要的查询应该只生成表中还没有的8个字符的字母数字字符串。我再次想到了generate&check循环方法,但是我并没有将这个问题限制为以防万一,这是一个更有效的方法。我已经能够通过定义一个包含所有允许的字符的字符串并随机子字符串化来生成字符串,仅此而已。 任何帮助表示赞赏。
110 mysql  sql 

6
MySQL:float和double有什么区别?
在检查新的数据库结构后,我看到有人将字段从float更改为double。不知道为什么,我检查了mysql文档,但老实说不明白有什么区别。 有人可以解释吗?
110 mysql 

20
用户“ root” @“ localhost”的访问被拒绝(使用密码:是)-没有权限?
我不断收到此错误。 我正在使用mySQL Workbench,从中发现根的架构特权为null。根本没有特权。 我在使用服务器的平台上遇到了麻烦,这是一个突然的问题。 root@127.0.0.1显然具有很多访问权限,但我已以此身份登录,但无论如何它只是分配给localhost-本地主机没有特权。 我已经做了一些类似FLUSH HOSTS,,FLUSH PRIVILEGES等等的事情,但是从那或互联网上都没有找到成功。 如何获得根对其访问的权限?我发现这很令人沮丧,因为当我环顾四周时,人们希望您“具有访问权限”,但是我没有访问权限,因此我无法进入命令行或其他任何内容,也无法进入GRANT我自己的任何内容。 运行时,SHOW GRANTS FOR root这是我得到的回报: 错误代码:1141。在主机“%”上没有为用户“ root”定义此类授予

3
在池中关闭JDBC连接
我们使用JDBC的标准代码部分是... Connection conn = getConnection(...); Statement stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rset = stmt.executeQuery (sqlQuery); // do stuff with rset rset.close(); stmt.close(); conn.close(); 问题1:使用连接池时,是否应该在最后关闭连接?如果是这样,合并的目的就不会丢失吗?如果不是,那么DataSource如何知道何时释放Connection的特定实例并可以重用?我对此感到有些困惑,任何指针都表示赞赏。 问题2:以下方法是否接近标准?看起来像是尝试从池中获取连接,并且如果无法建立DataSource,请使用老式的DriverManager。我们甚至不确定哪个部分正在运行时执行。重复以上问题,是否应该关闭这种方法发出的连接? 谢谢-MS synchronized public Connection getConnection (boolean pooledConnection) throws SQLException { if (pooledConnection) { if (ds == null) { try { Context envCtx = (Context) …


4
AWS MySQL RDS与AWS DynamoDB [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 我已经使用MySQL已有一段时间了,对它的结构和SQL查询等感到很满意。 当前正在AWS中构建新系统,我一直在研究DynamoDB。目前我对此只了解一点。 一个比另一个好吗? DynamoDB有什么优势? 从MySQL查询等到该扁平样式数据库的过渡是什么样的?

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.