คำถามติดแท็ก mysql

MySQL เป็นโอเพ่นซอร์สระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ใช้ภาษาคิวรีเชิงโครงสร้าง (SQL) ห้ามใช้แท็กนี้สำหรับฐานข้อมูลอื่น ๆ เช่น 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 …


16
ข้อผิดพลาดของ MySQL 1093 - ไม่สามารถระบุตารางเป้าหมายสำหรับการอัปเดตในส่วนคำสั่งได้
ฉันมีตาราง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 - คุณไม่สามารถระบุตารางเป้าหมาย 'story_category' สำหรับการอัปเดตในส่วนคำสั่งได้ ฉันจะเอาชนะสิ่งนี้ได้อย่างไร

11
ฉันจะดูกุญแจต่างประเทศทั้งหมดในตารางหรือคอลัมน์ได้อย่างไร
ใน MySQL ฉันจะรับรายการข้อ จำกัด คีย์ต่างประเทศทั้งหมดที่ชี้ไปยังตารางที่ระบุได้อย่างไร คอลัมน์ใดคอลัมน์หนึ่ง นี่คือสิ่งเดียวกันกับคำถาม Oracle นี้แต่สำหรับ MySQL

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 …

8
วิธีย่อ / ลบไฟล์ ibdata1 ใน MySQL
ฉันใช้ MySQL ใน localhost เป็น "เครื่องมือสืบค้น" สำหรับการแสดงสถิติใน R นั่นคือทุกครั้งที่ฉันเรียกใช้สคริปต์ R ฉันสร้างฐานข้อมูลใหม่ (A) สร้างตารางใหม่ (B) นำเข้าข้อมูลลงใน B ส่งคำค้นหาเพื่อรับสิ่งที่ฉันต้องการจากนั้นฉันปล่อย B และวาง A มันใช้งานได้ดีสำหรับฉัน แต่ฉันรู้ว่าขนาดไฟล์ ibdata เพิ่มขึ้นอย่างรวดเร็วฉันไม่ได้เก็บอะไรไว้ใน MySQL แต่ไฟล์ ibdata1 มีขนาดเกิน 100 MB แล้ว ฉันกำลังใช้การตั้งค่า MySQL เริ่มต้นมากขึ้นหรือน้อยลงสำหรับการตั้งค่ามีวิธีที่ฉันสามารถย่อ / ลบไฟล์ ibdata1 โดยอัตโนมัติหลังจากระยะเวลาที่กำหนดหรือไม่
561 mysql  database  innodb 

5
สตริง MySQL แทนที่
ฉันมีคอลัมน์ที่มี URL (id, url): 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 ดังนั้น brute-force (การระบุชื่อตารางทั้งหมด) เป็นวิธีเดียวที่จะไปได้หรือไม่
558 sql  mysql  database  mysqldump 

17
ฉันจะเรียกคืนไฟล์ดัมพ์จาก mysqldump ได้อย่างไร
ฉันได้รับไฟล์ฐานข้อมูล MySQL ที่ฉันต้องการคืนค่าเป็นฐานข้อมูลในเครื่อง Windows Server 2008 ของฉัน ฉันพยายามใช้ผู้ดูแลระบบ MySQL แต่ฉันพบข้อผิดพลาดต่อไปนี้: ไฟล์ที่เลือกสร้างโดย mysqldump และไม่สามารถกู้คืนได้โดยแอปพลิเคชันนี้ ฉันจะทำงานนี้ได้อย่างไร
544 mysql  sql  database 


10
เมื่อใดจึงจะใช้ MongoDB หรือระบบฐานข้อมูลเชิงเอกสารอื่น ๆ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เรานำเสนอแพลตฟอร์มสำหรับวิดีโอและคลิปเสียงภาพถ่ายและ vector-grafics เราเริ่มต้นด้วย MySQL เป็นแบ็กเอนด์ฐานข้อมูลและเมื่อเร็ว ๆ นี้ได้รวมMongoDBสำหรับการจัดเก็บข้อมูลเมตาทั้งหมดของไฟล์เพราะ MongoDB เหมาะกับความต้องการมากขึ้น ตัวอย่างเช่น: ภาพถ่ายอาจมีข้อมูลExifวิดีโออาจมีแทร็กเสียงที่เราต้องการจัดเก็บข้อมูลเมตาของด้วย วิดีโอและกราฟิกแบบเวกเตอร์ไม่แชร์ข้อมูลเมตาทั่วไป ฯลฯ ดังนั้นฉันจึงรู้ว่า MongoDB นั้นสมบูรณ์แบบในการจัดเก็บข้อมูลที่ไม่มีโครงสร้างและเก็บไว้ค้นหาได้ อย่างไรก็ตามเรายังคงพัฒนาแพลตฟอร์มและเพิ่มคุณสมบัติต่อไป ตอนนี้หนึ่งในขั้นตอนต่อไปจะให้ฟอรัมสำหรับผู้ใช้ของเรา คำถามที่เกิดขึ้นคือใช้ฐานข้อมูล MySQL ซึ่งจะเป็นทางเลือกที่ดีสำหรับการจัดเก็บฟอรั่มและโพสต์ฟอรัม ฯลฯ หรือใช้ MongoDB สำหรับสิ่งนี้เช่นกัน? ดังนั้นคำถามคือเมื่อใช้ MongoDB และเมื่อใดควรใช้ RDBMS คุณจะเลือกอะไร mongoDB หรือ MySQL ถ้าคุณมีทางเลือกและทำไมคุณถึงเลือกมัน
516 mysql  mongodb 

12
วิธีการทำนิพจน์ปกติแทนใน MySQL?
ฉันมีตารางที่มีแถว ~ 500k คอลัมน์ 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 …
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 …
501 mysql 

4
MySQL: @ ตัวแปรกับตัวแปร ความแตกต่างคืออะไร?
ในคำถามอื่นที่ฉันโพสต์มีคนบอกฉันว่ามีความแตกต่างระหว่าง: @variable และ: variable ใน MySQL เขายังกล่าวถึงวิธี MSSQL มีขอบเขตชุดและ MySQL มีขอบเขตเซสชัน บางคนสามารถอธิบายเรื่องนี้ให้ฉันได้ไหม
501 mysql  sql  variables 

11
MySQL - ปรับปรุงแบบสอบถามขึ้นอยู่กับแบบสอบถามที่เลือก
ฉันต้องการตรวจสอบ (จากตารางเดียวกัน) หากมีการเชื่อมโยงระหว่างสองเหตุการณ์ตามวันที่และเวลา ชุดข้อมูลหนึ่งชุดจะมีวันที่สิ้นสุดเวลาของเหตุการณ์บางอย่างและชุดข้อมูลอื่นจะมีวันที่เริ่มต้นสำหรับกิจกรรมอื่น ๆ หากเหตุการณ์แรกเสร็จสิ้นก่อนเหตุการณ์ที่สองฉันต้องการเชื่อมโยงพวกเขา สิ่งที่ฉันมีอยู่คือ: 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 …
501 mysql  select  sql-update 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.