FiveM MySQL Table Doesn't Exist และ Unknown Column แก้อย่างไร? ตรวจ Schema, SQL Migration และ Resource Version ให้ตรงกัน

 ปัญหา FiveM Database ขึ้น Table Doesn't Exist หรือ Unknown Column มักเกิดหลังติดตั้ง Resource ใหม่ อัปเดต Script ย้าย Database หรือ Import SQL ไม่ครบ แม้ MySQL/MariaDB จะเชื่อมต่อสำเร็จแล้วก็ตาม

ตัวอย่าง Error ที่พบบ่อย:

Table 'fivem.players' doesn't exist
Table 'fivem.owned_vehicles' doesn't exist
Unknown column 'citizenid' in 'field list'
Unknown column 'last_login' in 'where clause'
ER_NO_SUCH_TABLE
ER_BAD_FIELD_ERROR

จุดสำคัญคือ Error กลุ่มนี้ ต่างจาก MySQL Connection Error

ถ้าคุณเห็น:

Access denied

หรือ:

ECONNREFUSED

แปลว่ายังมีปัญหาที่การเชื่อมต่อ

แต่ถ้าเห็น:

Table doesn't exist

หรือ:

Unknown column

แปลว่า FiveM สามารถส่ง Query ไปถึง Database ได้แล้ว แต่ Database Schema ไม่ตรงกับสิ่งที่ Resource ต้องการ

หลักการแก้จึงเป็น:

หา Resource ที่ Error → หา Table/Column → ตรวจ Database จริง → ตรวจไฟล์ SQL/Migration → Backup → ปรับ Schema ให้ตรง Version → Test

① Table Doesn't Exist คืออะไร

หมายถึง Resource กำลัง Query Table ชื่อหนึ่ง แต่ใน Database ที่เชื่อมอยู่ไม่มี Table นั้น

ตัวอย่าง:

SELECT * FROM players;

แต่ Database ไม่มี:

players

Query จึงล้มเหลว

② Unknown Column คืออะไร

หมายถึง Table มีอยู่ แต่ไม่มี Column ที่ Query กำลังเรียกใช้

เช่น:

SELECT citizenid FROM players;

แต่ Table players ไม่มี Column:

citizenid

③ Table Missing กับ Column Missing ต่างกันอย่างไร

Table Missing

ไม่มีทั้ง Table

Unknown Column

Table มี แต่โครงสร้างภายในไม่ตรง

④ Error นี้แปลว่า Database เชื่อมได้แล้วหรือไม่

โดยทั่วไปใช่

เพราะ Database ต้องรับ Query ก่อนจึงจะสามารถตอบว่า:

  • Table ไม่มี

  • Column ไม่มี

⑤ จึงไม่ควรเปลี่ยน Password ก่อน

ถ้า Error เป็น:

Unknown column

การเปลี่ยน Database Password ไม่ได้แก้ Schema

⑥ ตัวอย่าง Table Missing

Table 'fivem.users' doesn't exist

หมายความว่า Resource คาดหวัง Table:

users

ใน Database:

fivem

แต่หาไม่พบ

⑦ ตัวอย่าง Unknown Column

Unknown column 'firstname'

หมายความว่า Queryเรียก Column:

firstname

แต่ Tableจริงไม่มี

⑧ สาเหตุอันดับแรก — ยังไม่ได้ Import SQL

Resource FiveM หลายตัวให้ไฟล์:

install.sql
database.sql
schema.sql

ต้อง Import ก่อนใช้งาน

⑨ แค่ลาก Resource ลง Folder ยังไม่พอ

หลาย Scriptsต้องทำทั้ง:

  1. ติดตั้ง Resource

  2. Import SQL

  3. ตั้ง Config

  4. Start Resource

⑩ Resource โหลดได้แต่ Table ไม่ถูกสร้างเอง

เป็นเรื่องปกติสำหรับ Scriptบางประเภท

ไม่ใช่ทุก Resourceทำ Auto Migration

⑪ วิธีหาไฟล์ SQL

เปิด Folderของ Resourceแล้วมองหา:

.sql

หรือ Folderชื่อ:

sql
database
migrations

⑫ README สำคัญมาก

ผู้พัฒนาอาจระบุว่า:

Import install.sql before starting the resource.

หรือให้ Run Migrationเฉพาะ Version

⑬ อย่า Import SQL ทุกไฟล์พร้อมกัน

เพราะอาจมี:

  • install.sql

  • update_1.sql

  • update_2.sql

ที่ต้องทำตามลำดับ

⑭ Migration คืออะไร

Migration คือการเปลี่ยน Database จาก Schema Versionเดิมไป Versionใหม่

เช่น:

Version 1:

users
- id
- name

Version 2:

users
- id
- name
- last_login

⑮ ถ้า Update Script แต่ไม่ Migration

Codeใหม่อาจ Query:

last_login

แต่ Databaseเก่ายังไม่มี

จึงเกิด:

Unknown column 'last_login'

⑯ Errorหลัง Update Resource ให้สงสัย Migrationก่อน

โดยเฉพาะถ้า Serverทำงานได้ก่อน Update

⑰ Errorหลังติดตั้ง Resource ใหม่

ให้ตรวจว่า:

  • Import SQLครบหรือยัง

ก่อนแก้ Source Code

⑱ Errorหลังย้าย Hosting

อาจเกิดจาก Restore Databaseไม่ครบ

เช่น Restore:

  • Users

แต่ไม่ได้ Restore:

  • Business Tables

⑲ Errorหลังเปลี่ยน Framework

ยิ่งมีโอกาสสูง

เพราะ Frameworkต่างกันอาจใช้:

  • Table Names

  • Column Names

คนละแบบ

⑳ ESX กับ QBCore Schema เหมือนกันไหม

ไม่ควรถือว่าเหมือนกัน

Resourceต้องรองรับ Frameworkที่ Serverใช้อยู่จริง

㉑ Resourceสำหรับ ESX เอาไปใช้ QBCoreตรง ๆ ได้ไหม

ไม่เสมอไป

แม้ Resourceเปิดได้ แต่ Queryอาจเรียก Table/Columnคนละแบบ

㉒ Framework Bridge คืออะไร

Resourceบางตัวมี Codeกลางเพื่อรองรับหลาย Framework

แต่ต้องเลือก Configให้ถูก

㉓ Configผิด Framework ทำ Unknown Column ได้

ตัวอย่าง Resourceมี:

Framework = ESX

แต่ Serverจริงเป็น:

QBCore

Resourceอาจยิง Queryผิด Schema

㉔ ตรวจ Framework Config ก่อนแก้ Database

สำคัญมาก

อย่าเพิ่ม Column ESXลง QBCoreเพียงเพื่อให้ Errorหาย หาก Resourceตั้ง Frameworkผิด

㉕ Table Prefix คืออะไร

บางระบบใช้ชื่อ Tableที่มี Prefix เช่น:

esx_users

หรือ:

qb_players

ขึ้นอยู่กับ Script

㉖ Resourceคาดชื่อ Tableหนึ่ง แต่ Databaseใช้อีกชื่อ

อาจต้อง:

  • แก้ Config

  • ใช้ Compatibility Layer

  • ใช้ Version Resourceที่ถูก

ไม่ควร Rename Tableทันที

㉗ วิธีดู Table ทั้งหมด

Database Clientทั่วไปสามารถแสดงรายการ Tablesใน Databaseที่เลือก

หรือใช้ SQL:

SHOW TABLES;

㉘ ถ้า Tableที่ Errorไม่มีจริง

คำถามต่อไปคือ:

มันควรถูกสร้างโดย Resource ไหน?

㉙ อย่าสร้าง Tableเปล่าด้วยตัวเองทันที

เช่นเห็น:

Table 'phone_messages' doesn't exist

แล้วสร้าง:

CREATE TABLE phone_messages (...);

แบบเดาเอง

เพราะ Column, Index และ Constraints อาจผิดทั้งหมด

㉚ ใช้ Schemaจาก Resourceจริง

เป็น Sourceที่เหมาะกว่า

㉛ วิธีดู Structure Table

ใช้:

DESCRIBE players;

㉜ หรือ

SHOW CREATE TABLE players;

ช่วยเห็น:

  • Columns

  • Types

  • Indexes

  • Defaults

㉝ Unknown Column ต้องตรวจชื่อจริง

เช่น Error:

Unknown column 'charinfo'

ดูว่า Tableมี:

char_info

หรือ:

charinfo

หรือไม่

㉞ พิมพ์ผิดหนึ่งตัวก็ Error

เช่น:

citizenid

กับ:

citizen_id

เป็นคนละชื่อ

㉟ Resource Updateอาจ Rename Column

เช่น Versionเก่า:

identifier

Versionใหม่:

citizenid

ถ้า Migrationไม่ครบก็ Error

㊱ Rename Columnเองอันตรายไหม

อันตรายถ้า Resourceอื่นยังใช้ชื่อเก่า

Server FiveMมักมีหลาย Scriptsใช้ Tableเดียวกัน

㊲ Shared Table คืออะไร

Tableหลักที่ Resourcesหลายตัวใช้ร่วมกัน เช่น:

  • players

  • users

  • owned_vehicles

ขึ้นอยู่กับ Framework

㊳ เปลี่ยน Shared Table ต้อง Searchทั้ง Server

ก่อนเปลี่ยน:

identifier

ควรค้นว่า Resourceไหนเรียก Columnนี้อยู่บ้าง

㊴ วิธีค้น Source Code

ค้นชื่อ Columnที่ Error เช่น:

citizenid

ใน Folder Resources

㊵ หา Queryที่สร้าง Error

มองหา:

SELECT
INSERT
UPDATE
DELETE

ที่ใช้ Columnนั้น

㊶ Consoleมักบอก Resource Name

เช่น:

@my-garage/server.lua

ช่วยจำกัด Scopeได้มาก

㊷ Consoleบอก Line Numberได้ไหม

บาง Error Stackมี:

server.lua:204

เปิดไฟล์บริเวณนั้นได้ทันที

㊸ อย่าแก้ Databaseทั้ง Serverเพราะ Resourceเดียว

ถ้า Errorมาจาก:

my_custom_phone

ให้ตรวจ Resourceนั้นก่อน

㊹ Resource Disableแล้ว Serverกลับปกติ

ช่วยยืนยันว่า Resourceนั้นเกี่ยวข้อง

แต่ไม่ใช่ Fixถาวรถ้าต้องการ Featureนั้น

㊺ Table Exists แต่ชื่อ Databaseผิด

อาจมี Databaseสองตัว:

fivem_old
fivem_new

Resourceเชื่อม fivem_new

แต่ Tablesอยู่ fivem_old

㊻ นี่ทำให้ Table Doesn't Exist ทั้งที่คุณเห็น Tableอยู่

เพราะคุณกำลังดูคนละ Database

㊼ ตรวจ Connection Stringก่อน Importซ้ำ

โดยเฉพาะหลัง:

  • Migration

  • Hosting Move

㊽ Database Nameต้องตรง

ตรวจ:

Host
Database

ที่ FiveM Resourceกำลังใช้อยู่จริง

㊾ Tableมีใน phpMyAdmin แต่ FiveMบอกไม่มี

ตรวจว่า phpMyAdminเปิด Databaseเดียวกับ FiveMหรือไม่

㊿ Case Sensitivity มีผลไหม

ชื่อ Tableอาจมีพฤติกรรมเรื่องตัวพิมพ์ใหญ่/เล็กแตกต่างตาม Environment

แนวทางปลอดภัยคือใช้ชื่อให้ตรงกับ Schemaจริง

51. Players กับ players

ไม่ควรถือว่าเหมือนกันทุก Environment

52. Migrationจาก WindowsไปLinuxอาจเปิดเผยปัญหา Case

เพราะ Filesystem/Database Configurationอาจต่าง

53. Table Doesn't Existหลังย้าย OS

ตรวจ:

  • Table Name Case

เพิ่มเติม

54. Column Name Caseล่ะ

ควรเขียนให้ตรงกับ Resourceอยู่ดี

แม้ Behaviorอาจต่างจาก Table Names

55. SQL Importเข้าผิด Database

พบได้บ่อยมาก

เช่น Import SQLเข้า:

test

แต่ FiveMใช้:

production

56. ตรวจ Databaseก่อนกด Import

สำคัญ

57. SQL Fileมี USE database_name; ไหม

บาง Dumpกำหนด Databaseไว้ภายใน

อาจทำให้ Importไปคนละที่กับที่คิด

58. SQL Fileมี CREATE DATABASEไหม

ตรวจให้ดีก่อน Import Production

59. SQL Fileมี DROP TABLEไหม

อันตรายมาก

หาก Importทับ Serverจริงโดยไม่อ่าน

60. Backupก่อน Import SQL

เป็นกฎพื้นฐาน

โดยเฉพาะ Production

61. Install SQLกับUpdate SQLต่างกัน

Install:

  • สำหรับ Databaseใหม่

Update/Migration:

  • สำหรับ Databaseที่มีข้อมูลอยู่แล้ว

62. ห้ามใช้ Fresh Install SQLทับ Productionโดยไม่อ่าน

เพราะอาจ:

  • DROP Tables

  • Reset Defaults

  • ลบข้อมูล

63. Migrationควร Preserve Data

โดยทั่วไป Update Scriptที่ดีจะใช้:

  • ALTER TABLE

  • ADD COLUMN

มากกว่าลบ Tableทั้งหมด

แต่ต้องอ่าน SQLจริง

64. ADD COLUMN คืออะไร

เพิ่ม Columnใหม่

ตัวอย่าง:

ALTER TABLE players
ADD COLUMN last_login DATETIME NULL;

นี่เป็นเพียงตัวอย่างแนวคิด ไม่ควรรันกับ Serverจริงจนกว่าจะรู้ว่า Resourceต้องการ Definitionอะไร

65. MODIFY COLUMN คืออะไร

เปลี่ยน Type/Propertiesของ Columnที่มีอยู่

66. CHANGE COLUMN คืออะไร

อาจใช้เปลี่ยน:

  • Name

  • Definition

ตาม Database Syntax

67. DROP COLUMN คืออะไร

ลบ Column

มีความเสี่ยงต่อข้อมูลและ Resourcesอื่น

68. DROP TABLE คืออะไร

ลบทั้ง Table

ไม่ควรใช้เป็นวิธี Troubleshootทั่วไป

69. CREATE TABLE IF NOT EXISTS ช่วยอะไร

ใช้สร้าง Tableเมื่อยังไม่มี

แต่ Table Definitionยังต้องถูกต้อง

70. Error Table Existsตอน Import

อาจหมายถึง SQLกำลังสร้าง Tableที่มีอยู่แล้ว

อย่าแก้ด้วย Drop Tableทันที

71. Duplicate Columnตอน Migration

เช่น:

Duplicate column name 'last_login'

อาจหมายถึง Migrationนั้นเคย Runแล้วบางส่วน

72. อย่ารัน Migrationซ้ำต่อทันที

ตรวจ Stateก่อน

73. Partial Migration คืออะไร

Migrationทำได้ครึ่งหนึ่งแล้ว Error

ทำให้ Schemaอยู่ระหว่างสอง Versions

74. Partial Migrationอันตราย

Resourceอาจเห็น:

  • Columnบางตัวมี

  • บางตัวไม่มี

เกิด Errorหลายแบบต่อกัน

75. หลัง Migration Failควรทำอะไร

  • หยุด

  • อ่าน Error

  • ตรวจ Schema

  • ใช้ Backupถ้าจำเป็น

ไม่ควร Runซ้ำแบบเดา

76. Schema Version คืออะไร

สถานะว่า Databaseตรงกับ Resource Versionใด

77. Resource VersionกับSchema Versionควรตรงกัน

นี่คือหลักสำคัญ

78. Version mismatch ตัวอย่าง

Code:

v2.5

Database:

v1.9

Codeใหม่อาจเรียก Columnsที่ Databaseเก่าไม่มี

79. Changelogช่วยอะไร

ดูว่า Updateเพิ่ม:

  • Tables

  • Columns

  • Indexes

อะไร

80. GitHub Release Notesมีประโยชน์ไหม

ถ้าเป็น Sourceทางการของ Resource:

  • มีประโยชน์

โดยเฉพาะ Database Changes

81. อย่าใช้ SQLจากคนอื่นที่ใช้ Resourceคนละ Version

Schemaอาจต่างกัน

82. Copy Tableจาก Serverอื่นดีไหม

ไม่ควรเป็นวิธีแรก

เพราะ:

  • Resource Version

  • Framework

  • Config

อาจไม่เหมือนกัน

83. Unknown Columnหลังเปลี่ยน Framework Version

เช่น Frameworkเองเปลี่ยน Schema

Resourceเก่าอาจยัง Query Columnเดิม

84. Resource Compatibilityสำคัญ

ต้องตรวจว่า Scriptรองรับ:

  • Framework Version

  • Database Schema

ที่คุณใช้อยู่

85. Legacy Resource คืออะไร

Scriptเก่าที่ไม่ได้ Updateให้ตรง Frameworkปัจจุบัน

86. Legacy Resourceอาจต้อง Patch

แต่ควรเข้าใจ Schemaก่อนแก้ Source

87. Hardcode Columnใหม่เข้า Databaseทุกครั้งไม่ใช่ทางยั่งยืน

เพราะ Resource Logicอาจยังไม่ตรง

88. ตัวอย่าง

Resourceคาด:

citizenid

แต่ Server Frameworkใช้:

identifier

เพิ่ม citizenidเปล่า ๆ อาจทำให้ Queryผ่านแต่ไม่มีข้อมูลจริง

89. Queryผ่าน ≠ ระบบทำงานถูกต้อง

นี่สำคัญมาก

90. Columnต้องมี Dataที่ถูกความหมายด้วย

ไม่ใช่เพียงมีชื่อ

91. Character Identifier สำคัญ

ถ้า Columnที่ Resourceใช้ Identify Playerว่างทั้งหมด:

  • Data Mappingอาจเสีย

92. DEFAULT NULLช่วยให้ Errorหายแต่ Logicอาจพัง

ถ้า Resourceต้องใช้ค่าจริงในการ Lookup

93. อย่าเพิ่ม Columnเป็น NULLทุกอย่าง

เพียงเพื่อหยุด Error

94. ดู Sourceว่าค่า Columnมาจากไหน

เช่น:

citizenid

ควรสัมพันธ์กับ Character Identifierจริง

95. Insert Queryต้องเขียน Columnนั้นด้วยไหม

ถ้า Resource SELECT Columnแต่ไม่มี Scriptใด INSERTค่า:

  • ต้องตรวจ Design

96. Schemaจาก Developerช่วยตอบได้

ดู CREATE TABLEต้นฉบับ

97. Default Valueสำคัญไหม

สำคัญ

Columnอาจต้อง:

  • NULL

  • 0

  • Empty JSON

ตาม Resource Logic

98. JSON Columnคืออะไร

Resourceบางตัวเก็บข้อมูลรวมเป็น JSON เช่น:

  • Metadata

  • Inventory

99. Unknown Columnใน JSON Queryได้ไหม

ได้ถ้า SQLกำลังอ้าง Columnหลักที่เก็บ JSON

100. JSON Key Missingไม่เหมือน Unknown Column

ถ้า Columnมีแต่ Keyภายใน JSONไม่มี:

  • เป็น Application/Data Problemอีกแบบ

101. Table Prefixใน Configแก้ได้ไหม

บาง Resourcesให้ตั้ง:

tableName

หรือ Framework Adapter

ถ้ามีควรใช้ Configแทนแก้ Source

102. Config First Principle

ก่อนแก้ Code/Databaseให้ตรวจว่า Resourceมี Optionรองรับ Schemaของคุณอยู่แล้วหรือไม่

103. SQL Adapter คืออะไร

Codeที่แปลง Queryให้เข้ากับ Framework/Schemaต่าง ๆ

104. Bridge Folderมีไหม

Resourcesบางตัวแบ่ง:

bridge/esx
bridge/qb

เลือกผิดอาจยิง Queryผิด

105. Auto-detect Frameworkเชื่อถือได้เสมอไหม

ไม่จำเป็น

ถ้า Serverมีหลาย Core Resourcesหรือ Custom Frameworkอาจ Detectผิด

106. Manual Framework Configอาจดีกว่า

เมื่อ Developerรองรับ

107. Unknown Columnหลังเปิด Multi-Character

อาจเกิดจาก Resourceคาด Identifierแบบใหม่

108. Multi-Characterเปลี่ยน Data Modelได้

เช่น Accountหนึ่งมี Charactersหลายตัว

Resourceต้องอ้าง:

  • Character ID

ไม่ใช่ Account IDอย่างเดียว

109. Phone Resourceมักใช้ Tablesของตัวเอง

ถ้าไม่ Import SQL:

  • Messages

  • Contacts

อาจ Error

110. Housingก็เช่นกัน

อาจมี Tables:

  • properties

  • keys

ตาม Script

111. Garage Resourceอาจต้อง Migration

โดยเฉพาะการเพิ่ม:

  • Garage State

  • Impound Data

112. Inventory Resourceอาจเปลี่ยน Schema

เช่นย้ายจาก:

  • Dedicated Table

  • JSON Column

ไปอีก Design

113. Banking Resourceอาจใช้ Transaction Tables

หาก Missingอาจ:

  • Bankโหลดได้บางส่วน

  • Historyพัง

114. Business Resourceอาจใช้หลาย Tables

เช่น:

  • businesses

  • employees

  • transactions

Importไม่ครบอาจ Errorทีละ Table

115. Job Resourceก็อาจ Add Columnให้ Framework Table

ต้อง Import Migration

116. Whitelist Resourceอาจต้อง Tablesเฉพาะ

อย่าคิดว่า Frameworkสร้างให้ทั้งหมด

117. Ban Resourceอาจใช้ Tableของตัวเอง

ถ้า Tableหาย Serverอาจเปิดได้แต่ Ban Systemไม่ทำงาน

118. Logs Resourceอาจ Error Missing Table

บางครั้ง Gameplayยังทำงาน แต่ Logsไม่ถูก Save

ยังควรแก้

119. Missing Table Severityขึ้นกับ Resource

ถ้าเป็น:

  • Core Character Table

Serverอาจเข้าไม่ได้ทั้งหมด

ถ้าเป็น:

  • Optional Statistics

อาจเสียเฉพาะ Featureนั้น

120. Console Errorซ้ำทุกวินาทีอันตรายไหม

อาจสร้าง:

  • Log Spam

  • Performance Overhead

และปิดบัง Errorอื่น

121. Disable Resourceชั่วคราวเมื่อจำเป็น

ถ้า Optional Resourceยิง Errorต่อเนื่องและยังแก้ไม่ได้

แต่ต้องรู้ Dependenciesก่อน

122. อย่า Disable Core Database Resource

เพียงเพราะ Resourceอื่น Queryผิด

123. Core vs Optional Resource

ต้องแยกให้ได้

124. Table Doesn't Existตอน Server Start

มักเกิดจาก Resourceทำ:

  • Startup Query

  • Data Load

ทันที

125. Table Doesn't Existตอน Player Join

Resourceอาจ Query Dataเฉพาะ Playerเมื่อ Connect

126. Unknown Columnตอน Save

อาจเกิดเฉพาะตอน:

  • Disconnect

  • Transaction

จึงไม่เห็นตอน Startup

127. Testต้องทำ Actionเดิม

ถ้า Errorเกิดตอนซื้อรถ:

  • ทดสอบซื้อรถหลังแก้

ไม่ใช่เพียง Restart Serverแล้วสรุปว่าหาย

128. ตรวจ Consoleหลัง Test

ต้องไม่มี:

  • New SQL Errors

ที่เกิดจาก Fix

129. ตรวจ Dataจริงด้วย

เช่นซื้อรถแล้วดูว่า:

  • Ownership Recordถูกสร้าง

ไม่ใช่เพียงไม่มี Error

130. Backupก่อน ALTER TABLE

จำเป็น

131. Backupก่อน Import Migration

จำเป็นเช่นกัน

132. Backupควรเก็บก่อน Version Update

เพื่อ Rollbackได้ถ้า Migrationมีปัญหา

133. Productionควรมี Stagingไหม

ถ้า Serverใหญ่/สำคัญ:

  • มีประโยชน์มาก

ทดลอง Resourceและ Migrationก่อน Live

134. Staging Database คืออะไร

สำเนาหรือ Environmentทดสอบที่ไม่ใช่ Productionจริง

135. อย่าใช้ Player Database Productionเป็นสนามทดลอง

โดยเฉพาะ Query:

  • UPDATE

  • DELETE

  • ALTER

ขนาดใหญ่

136. phpMyAdminแก้ Schemaได้ไหม

ได้

แต่ UIง่ายไม่ได้แปลว่าการเปลี่ยน Schemaไม่มีความเสี่ยง

137. HeidiSQLก็เหมือนกัน

Toolเป็นเพียง Interface

ความถูกต้องของ SQLยังสำคัญ

138. Database BackupจากPanelเพียงพอไหม

ถ้า Restoreได้และครอบคลุม Dataที่ต้องการ:

  • อาจเพียงพอ

แต่ Serverใหญ่ควรมี Backup Strategyชัดเจน

139. Backupหลังแก้ไม่แทน Backupก่อนแก้

เพราะต้องมีจุดย้อนกลับ

140. Error 1146 คืออะไร

MySQL/MariaDBมักใช้ Error Codeเกี่ยวกับ Tableที่ไม่มีในกรณี Table doesn't exist

แต่ในการแก้ FiveM ให้ข้อความ Table/Resourceสำคัญกว่าจำเลข Error

141. Error 1054 คืออะไร

มักพบกับ:

Unknown column

แต่เช่นเดียวกัน ให้โฟกัส:

  • Column

  • Query

  • Schema

142. ER_NO_SUCH_TABLE คืออะไร

ชื่อ Errorที่ Database Driverบางตัวแสดงเมื่อ Tableไม่พบ

143. ER_BAD_FIELD_ERROR คืออะไร

มักสัมพันธ์กับ Unknown Column/Fieldใน Query

144. Error Nameช่วย Search Sourceได้

แต่ไม่ควรแก้จาก Codeอย่างเดียวโดยไม่ดู Schema

145. Missing Indexทำ Unknown Columnไหม

ไม่

Index Missingเป็น Performance/Constraint Issueอีกแบบ

146. Missing Primary Keyทำ Table Missingไหม

ไม่

Tableยังมีอยู่

แต่ Resourceบางตัวอาจทำงานผิดถ้าคาด Key

147. Indexสำคัญกับ FiveMไหม

มากสำหรับ Tableใหญ่ เช่น:

  • Players

  • Transactions

แต่ไม่ใช่ Topicหลักของ Missing Table

148. Primary Key คืออะไร

Column/ชุด Columnsที่ระบุ Rowแบบ Unique

149. Unique Key คืออะไร

Constraintป้องกันค่าซ้ำตาม Definition

150. Foreign Key คืออะไร

Constraintเชื่อม Recordsระหว่าง Tables

FiveM Resourcesบางตัวใช้ บางตัวไม่ใช้

151. Import SQLแล้ว Foreign Key Error

เป็น Migration Issueอีกประเภท

ต้องตรวจ Table Order/Data

152. อย่าปิด Foreign Key Checksถาวร

เพื่อทำให้ Importผ่านโดยไม่รู้เหตุผล

153. Temporary Migration Settingsต้องใช้ด้วยความเข้าใจ

ไม่ควรเป็น Fixประจำ

154. Table Engineต่างกันมีผลไหม

เช่น InnoDB

อาจมีผลกับ Transactions/Constraints

แต่ Missing Tableยังต้องแก้ Schemaก่อน

155. Character Set/Collationไม่ทำให้ Tableหาย

เป็นคนละปัญหา

156. Collation Errorเกิดได้หลัง Migration

แต่ไม่ควรแก้พร้อม Unknown Columnถ้าไม่เกี่ยว

157. แก้ทีละ Error

ดีที่สุด

158. ถ้ามี Errorหลายสิบตัว

หา Errorแรกสุดหลัง Resource Start

เพราะ Errorต่อ ๆ มาอาจเป็นผลจากต้นเหตุเดียว

159. Example

Tableหลัก:

players

Missing

Resourcesต่อมาทั้งหมด Query Player Dataไม่ได้

จึงเกิด Errorเป็นชุด

160. Fix Root Tableก่อน

แล้ว Restart/Testใหม่

161. Console Error Orderมีความหมาย

อ่านจาก:

  • First Failure

ก่อน Last Failure

162. Resource Dependency Error

ถ้า Resource Aสร้าง Tableตอน Start แต่ Resource B Startก่อน

Bอาจ Queryก่อน Tableพร้อม

163. Auto Table Creationมีไหม

บาง Resourcesสร้าง Tableด้วย Code

ถ้า Resourceสร้าง Tableไม่สำเร็จอาจมี Errorก่อนหน้า

164. Permission CREATE TABLE

ถ้า Resourceต้อง Auto-createแต่ Database Userไม่มี Permission:

  • Tableอาจไม่ถูกสร้าง

165. Application Userจำเป็นต้อง CREATE TABLEเสมอไหม

ไม่

ถ้าใช้ Manual Migration:

  • ไม่จำเป็น

และ Productionบางระบบตั้งใจไม่ให้ Applicationแก้ Schema

166. Migration UserกับApplication Userแยกได้

เป็นแนวทางที่ดีใน Infrastructureที่เข้มขึ้น

167. Serverเล็กไม่จำเป็นต้องซับซ้อนมาก

แต่ควรเข้าใจว่า Permissionแต่ละชนิดทำอะไร

168. Import SQLด้วย rootแต่ FiveM Userใช้ Tableไม่ได้

อาจเป็น Permission Issue

ไม่ใช่ Table Missing

ข้อความ Errorจะช่วยแยก

169. SELECT command denied

แปลว่า Tableอาจมี แต่ Userไม่มีสิทธิ์อ่าน

170. Table Doesn't ExistกับPermission Errorไม่เหมือนกัน

อย่าแก้ Grantsเมื่อ Tableไม่มีจริง

171. View คืออะไร

Databaseอาจมี:

  • View

ที่ Resource Queryเหมือน Table

ถ้า Viewหายก็ Errorได้

172. Stored Procedureเกี่ยวไหม

บาง Advanced Systemsอาจใช้

แต่ FiveM Resourcesทั่วไปจำนวนมากใช้ Queriesตรง

173. Database Triggerคืออะไร

Logicที่ Databaseทำอัตโนมัติเมื่อ Insert/Update

ไม่ใช่สาเหตุหลักของ Unknown Columnโดยทั่วไป

174. Migrationอาจ Add Trigger

จึงควร Importตาม Developer Instructions

175. SQL Dumpจาก Serverเก่าอาจไม่รวม Views/Triggers

ถ้า Export Settingsไม่ครบ

อาจทำ Featureบางส่วนพังหลัง Restore

176. Restoreควรตรวจ Objectครบ

โดยเฉพาะ Serverที่ใช้ Database Featuresพิเศษ

177. แต่เริ่ม Troubleshootจาก Errorที่เห็น

ไม่ต้องตรวจทุก Database Featureโดยไม่มีเหตุผล

178. Table Prefixจาก Hostingไม่ได้เปลี่ยน Table Names

อย่าสับสนกับ Database/User Prefix

Hostingอาจ Prefixชื่อ Database แต่ Tablesข้างในยังชื่อเดิม

179. Example

Database:

account_fivem

Table:

players

ไม่จำเป็นต้องเป็น:

account_players

180. Unknown DatabaseกับUnknown Tableจึงต้องอ่านเต็ม

ตัวอย่าง:

account_fivem.players

จะบอกทั้ง Databaseและ Table

181. วิธีป้องกัน Schema Problems

เก็บ:

  • Resource Versions

  • SQL Migrations

  • Backups

อย่างเป็นระบบ

182. Update Checklist

ก่อน Update Resource:

  • อ่าน Changelog

  • ดู Database Changes

  • Backup

  • Update Code

  • Run Migration

  • Test

183. อย่า Auto-update Resource Productionโดยไม่อ่าน

โดยเฉพาะ Scriptsที่แก้ Database Schema

184. Dependency Updateก็ทำ Schemaพังได้ไหม

อาจทำให้ Resource Compatibilityเปลี่ยน

แต่ต้องดู Changelogจริง

185. Framework Updateควรทดสอบ Resourcesสำคัญ

เช่น:

  • Phone

  • Inventory

  • Garage

  • Housing

  • Banking

186. Database Migration Documentationควรเก็บไว้

อย่าลบ SQL Folderหลัง Importจนไม่รู้ History

187. Custom Schema Changesควรจด

ถ้าคุณปรับเอง เช่น:

เพิ่ม column custom_rank

ควร Document

188. มิฉะนั้น Updateครั้งหน้าอาจชน

Developer Migrationไม่รู้ Custom Changesของคุณ

189. Git Diff SQLช่วยได้

เห็นว่า Schema Fileเปลี่ยนอะไรระหว่าง Versions

190. Database Schema Comparison Toolมีประโยชน์

สำหรับ Serverใหญ่ แต่ไม่จำเป็นสำหรับมือใหม่

191. มือใหม่ใช้ SHOW CREATE TABLE ก็พอเริ่มได้

เปรียบเทียบกับ SQLต้นฉบับอย่างระวัง

192. อย่า Copy CREATE TABLEแล้ว Runถ้า Tableมีข้อมูล

อาจเกิด Conflict

193. ต้องเปลี่ยนเฉพาะ Difference

มักใช้ Migration/ALTERที่ Developerให้

194. Manual ALTERควรเป็นทางเลือกท้าย ๆ

เมื่อไม่มี Official Migrationและเข้าใจ Resourceดีพอ

195. Example ErrorหลังPhone Update

Unknown column 'avatar' in 'phone_contacts'

ให้ตรวจ Phone Resource Migration

ไม่ต้องแก้ Framework User Tableถ้าไม่เกี่ยว

196. Example ErrorหลังGarage Update

Unknown column 'garage' in 'owned_vehicles'

ตรวจ Garage/Framework Migrationและ Version

197. Example ErrorหลังHousing Install

Table 'fivem.properties' doesn't exist

ตรวจ Housing SQL Installation

198. Example ErrorหลังBusiness Install

Table 'fivem.business_transactions' doesn't exist

ตรวจว่า Import Business SQLครบหรือไม่

199. Example ErrorหลังInventory Update

Unknown column 'inventory' in 'players'

อย่าเพิ่ม Columnทันที

ตรวจว่า Inventory Versionใหม่ยังใช้ Modelแบบนั้นหรือไม่

200. Resourceบางตัวไม่ใช้ Database Tableเดิมแล้ว

Updateอาจย้ายข้อมูลไป Tableใหม่

ต้อง Run Migrationจริง ไม่ใช่สร้าง Fieldเก่ากลับมา

201. Migration Directionสำคัญ

Versionเก่า → ใหม่

ไม่ใช่เอา SQLใหม่ไปสุ่ม Importแล้วค่อย SQLเก่าตาม

202. Downgrade Resourceก็มี Schema Risk

ถ้า Databaseถูก Migrationไป Versionใหม่แล้ว

Codeเก่าอาจไม่เข้าใจ Schemaใหม่

203. Backupก่อน Upgradeช่วย Rollback

ทั้ง:

  • Code

  • Database

ควรมี Versionคู่กัน

204. Database Rollbackไม่ใช่แค่เปลี่ยนไฟล์ Resource

ต้อง Restore Schema/Dataให้ตรง Code

205. Migrationที่เพิ่ม Columnอย่างเดียวอาจ Rollbackง่ายกว่า

แต่ Migrationที่ Transform Dataอาจซับซ้อน

206. อย่าทำ Production Updateก่อนเวลาคนเล่นเยอะ

Maintenance Windowช่วยลดผลกระทบ

207. Server Restartหลัง Migrationจำเป็นไหม

ขึ้นอยู่กับ Resource

แต่ Resourcesอาจต้อง Reloadเพื่อใช้ Code/Schemaใหม่

208. Migrationแล้วไม่ Restart Resource

Codeเก่าอาจยัง Running

จึงควรวางขั้นตอน Updateให้ครบ

209. Database CacheในResourceมีไหม

บาง Resources Cache Data/Prepared Queries

Restart Resourceอาจจำเป็นหลัง Schema Change

210. Prepared Statementอ้าง Columnเก่า

ถ้า Codeใหม่ไม่ Reload Queryเก่าอาจยังถูกใช้ในบาง Architecture

211. Restartทั้ง Serverปลอดภัยกว่าเสมอไหม

ไม่จำเป็น

แต่ Maintenance Updateใหญ่บางครั้งเลือก Full Restartเพื่อให้ Stateสะอาด

212. ต้องประกาศก่อน Maintenance

ถ้ามี Players Online

ป้องกัน:

  • Transactionsค้าง

  • RPขาด

213. Database Changesระหว่าง Active Transactionsเสี่ยง

โดยเฉพาะ Tablesที่ Playersกำลังเขียน

214. Maintenance Modeช่วยได้

หยุด Gameplayขณะ Migration

215. Unknown Column Errorอาจทำให้ข้อมูลหายไหม

ตัว Queryที่ Errorอาจไม่สำเร็จ

ถ้าเป็น Save Query:

  • Dataล่าสุดอาจไม่ถูก Save

จึงควรแก้เร็ว

216. Missing Table Errorอาจทำ Characterสร้างไม่สำเร็จ

ถ้า Tableนั้นเป็นส่วนหนึ่งของ Character Creation

217. อย่าให้ Playersเล่นต่อหาก Core Saveพัง

เสี่ยง:

  • Money

  • Items

  • Progression

ไม่ Save

218. Optional Log Tableพังต่างจากPlayer Tableพัง

Severityต่างกัน

219. ดู Functionของ Table

ก่อนตัดสินใจว่าจะ Shut Down Serverหรือไม่

220. Server Ownerควรรู้ Core Tablesคร่าว ๆ

ไม่จำเป็นต้องเป็น DBA

แต่ควรรู้ว่า Tablesใดเก็บ:

  • Characters

  • Economy

  • Vehicles

221. Database Administrator หรือ DBA คืออะไร

ผู้ดูแล Databaseเชิงระบบ

FiveM Serverเล็กอาจไม่มีตำแหน่งแยก

222. Schemaคืออะไรแบบง่าย

โครงสร้าง Database:

  • Tables

  • Columns

  • Types

  • Keys

223. Dataคืออะไร

ค่าที่อยู่ภายใน Schema

เช่น:

Character A
เงิน 50,000

224. Schema ErrorกับData Errorต่างกัน

Schema Error:

  • Columnไม่มี

Data Error:

  • Columnมีแต่ค่าผิด

225. บทความ 271 เป็นตัวอย่าง Data/Type Error

Incorrect datetime value

226. บทความ 272 เป็น Connection Error

ยังเชื่อม Databaseไม่ได้

227. บทความนี้เป็น Schema Error

Connectionสำเร็จ แต่โครงสร้างไม่ตรง Resource

228. สาม Layerนี้ควรแยกให้ชัด

Connection → Schema → Data

229. ถ้าเข้าใจ Layer Troubleshootingจะง่ายขึ้นมาก

เพราะข้อความ Errorบอกจุดได้ค่อนข้างชัด

230. Error Matrix

ErrorLayer
ECONNREFUSEDConnection
Access DeniedAuthentication
Unknown DatabaseDatabase Selection
Table Doesn't ExistSchema
Unknown ColumnSchema
Incorrect DatetimeData/Type
Duplicate EntryConstraint/Data

231. Table Doesn't Exist Quick Fix

อย่า “สร้าง Tableเอง”

ให้:

  1. หา Resource

  2. หา Official SQL

  3. Backup

  4. Import/Migrateถูก Version

232. Unknown Column Quick Fix

  1. หา Columnใน Error

  2. ดู Tableจริง

  3. ตรวจ Resource Version

  4. หา Migrationที่เพิ่ม/เปลี่ยน Column

233. ถ้าไม่มี Migration File

ตรวจ Documentation/Release Notes

ก่อน Manual ALTER

234. ถ้า Resourceปิด Source

Developerอาจให้ SQL Updateแยกใน Customer Portal/Package

ใช้ Sourceทางการ

235. Pirated/Leaked Resourceเสี่ยง Database Schemaมาก

เพราะไฟล์อาจ:

  • ไม่ครบ

  • คนละ Version

  • ถูกแก้

นอกจากปัญหาด้านสิทธิ์แล้ว ยัง Debugยากมาก

236. ใช้ Resourceจากแหล่งที่เชื่อถือได้

ช่วยให้มี:

  • Documentation

  • Updates

  • Migration

ครบกว่า

237. Resource Escrowไม่ได้หมายความว่าไม่มี SQL

ส่วน Database Files/Configที่จำเป็นควรถูกจัดให้ตาม Resource Design

238. Missing SQLจาก Package

ควรติดต่อ Developer/Official Support

ไม่ควรเดา Schemaจาก Errorทีละ Column

239. เดา Schemaทีละ Errorมีปัญหาอะไร

วันนี้เพิ่ม:

column A

พรุ่งนี้ Error:

column B

สุดท้าย Tableอาจดูเหมือนครบแต่ Types/Indexesผิดทั้งหมด

240. Official CREATE TABLE สำคัญกว่า Guess

เพราะมี:

  • Types

  • Defaults

  • Indexes

ครบ

241. Indexหายแม้ Queryทำงาน

อาจ Performanceแย่มาก

นี่คือเหตุผลที่สร้าง Tableเปล่าเองไม่เหมาะ

242. Unique Constraintหายอาจเกิด Duplicate Data

แม้ไม่มี Errorทันที

243. Defaultผิดอาจสร้าง Data Bug

จึงต้อง Migrationถูกต้องทั้ง Schema

244. Nullabilityสำคัญ

Column:

NULL

กับ:

NOT NULL

มี Logicต่างกัน

245. Data Typeสำคัญ

เช่น:

INT
VARCHAR
JSON
DATETIME

ใช้แทนกันแบบสุ่มไม่ได้

246. VARCHAR Lengthสำคัญไหม

ได้

ข้อมูลยาวเกินอาจเกิด Error/Truncation

247. JSON Columnต้องมี JSONถูกต้อง

ถ้า Resourceคาด JSON

อย่าเปลี่ยนเป็น Textโดยไม่เข้าใจ

248. Primary Key Missingอาจทำ Updateผิด Row

ใน Resourceที่อาศัย Keyนั้น

249. Auto Increment คืออะไร

Column IDเพิ่มอัตโนมัติ

ถ้า Schemaต้นฉบับต้องมีแต่สร้างเองไม่มี:

  • Insertsอาจพัง

250. Character Tableสร้างเองจากชื่อ Columnอย่างเดียวจึงเสี่ยงมาก

ควรใช้ Framework Schemaจริง

251. วิธีตรวจว่า Migrationเคย Runหรือยัง

ดู:

  • Column

  • Migration Tableถ้ามี

  • Release State

ตาม Resource

252. Migration Tableคืออะไร

บางระบบเก็บ Versionของ Migrationที่เคย Run

แต่ไม่ใช่ทุก FiveM Resource

253. ไม่มี Migration Trackingทำอย่างไร

จด Manual Changeเอง

และ Backup SQL Schema

254. Schema Dumpคืออะไร

Exportเฉพาะโครงสร้าง Databaseโดยไม่เอา Data

มีประโยชน์เปรียบเทียบ

255. Production Schema Dumpควรเก็บเป็น Versionได้

สำหรับ Serverที่ Customเยอะ

256. Database Documentationลดปัญหาอนาคต

จดว่า:

  • Resourceไหนเพิ่ม Tableอะไร

  • Versionไหน

257. Tableชื่อคล้ายกันอย่าสับสน

เช่น:

owned_vehicle
owned_vehicles
player_vehicles

อาจเป็นคนละ Framework

258. อย่า Renameให้ตรง Errorโดยทันที

Resourceอื่นอาจใช้ Tableเดิม

259. Compatibility Viewใช้ได้ไหม

Advanced Adminอาจใช้ Database Viewเพื่อ Compatibilityบางกรณี

แต่ไม่ควรใช้เป็น Fixทั่วไปสำหรับมือใหม่

260. Better Fixคือใช้ Resource Adapterที่ถูก

เมื่อมี

261. Table Aliasใน SQLช่วยได้ไหม

Aliasเปลี่ยนชื่อใน Queryชั่วคราว

ไม่ได้ทำให้ Missing Tableเกิดขึ้นจริง

262. SQL Search Pathไม่มีแบบที่ควรเดา

FiveM Queryมักอ้าง Database Connectionที่เลือกไว้

263. Tableอยู่ Databaseอื่น

สามารถ Queryแบบ:

database.table

ได้ในบาง Design

แต่ Application Userต้องมี Permission

264. FiveM Resourceทั่วไปควรเชื่อม Databaseเดียวให้ชัด

ลด Complexity

265. Multi-Database Setupมีไหม

มีได้

แต่ Troubleshootingซับซ้อนขึ้น

266. Serverขนาดเล็กไม่ควรแยก Databaseโดยไม่มีเหตุผล

เพราะ Config/Permissionsเพิ่ม

267. Error Unknown Columnหลังเพิ่ม Custom Script

อาจ Scriptนั้นเขียนมาสำหรับ Schemaอื่น

ตรวจ Compatibilityก่อนเปลี่ยน Core Table

268. Developerควรหลีกเลี่ยง Hardcoded Framework Schemaถ้ารองรับหลาย Framework

ใช้ Adapter Layerจะดูแลง่ายกว่า

269. Server Ownerควรเลือก Scriptsที่รองรับ Frameworkตรง Version

ลดจำนวน Custom Patches

270. Custom Patchทุกตัวคือ Maintenance Cost

Update Frameworkครั้งหน้าอาจต้องแก้ใหม่

271. Database Schema Debt คืออะไร

การสะสม:

  • Custom Columns

  • Manual Fixes

  • Unknown Migrations

จนไม่มีใครรู้ว่า Productionต่างจากต้นฉบับอย่างไร

272. Schema Debtทำให้ Updateยากมาก

เพราะไม่รู้ว่าการ ALTERหนึ่งครั้งจะกระทบอะไร

273. ลด Schema Debtอย่างไร

  • ใช้ Migrations

  • Document Changes

  • Backup

  • Version Control

274. อย่าแก้ Schemaผ่าน phpMyAdminแล้วไม่จด

อีกหลายเดือนจะจำไม่ได้ว่า Columnนั้นมาจาก Resourceไหน

275. Comment Columnช่วยได้ไหม

Databaseบางระบบรองรับ Comments

แต่ Documentationภายนอกยังสำคัญกว่า

276. Naming Conventionช่วยอะไร

Custom Tablesควรมีชื่อชัดเจนเพื่อไม่ชน Resourceอื่น

277. Resource Table Prefixช่วยลดCollision

เช่น:

myphone_contacts

แทนชื่อทั่วไปมาก ๆ

แต่ขึ้นกับ Developer

278. Table Collision คืออะไร

สอง Resourcesใช้ Tableชื่อเดียวกันแต่ Schemaไม่เหมือนกัน

อาจทำให้ Updateตัวหนึ่งทำอีกตัวพัง

279. พบ Table Collisionทำอย่างไร

ต้องดู Resourcesทั้งสอง

ไม่ควร Import SQLของอีกตัวทับ

280. Phone Scriptsหลายตัวเป็นตัวอย่างที่ต้องระวัง

ถ้าเปลี่ยน Phone Resource:

  • Old Tables

  • New Tables

อาจไม่เหมือนกัน

281. ลบ Old Tablesได้ไหม

หลัง Migrationและ Backupอาจทำได้ถ้าแน่ใจว่าไม่มี Resourceใช้แล้ว

แต่ไม่ควรรีบ

282. Old Tableไม่ทำให้ Serverพังเพียงเพราะยังอยู่

ส่วนใหญ่ Tableที่ไม่ได้ Queryเพียงกิน Storage

283. จึงไม่ต้อง Clean Databaseระหว่าง Troubleshootingทันที

เน้นให้ระบบทำงานถูกก่อน

284. Orphan Table คืออะไร

Tableเก่าที่ไม่มี Resourceใช้แล้ว

285. Orphan Column คืออะไร

Columnเก่าที่ไม่มี Codeใช้

286. ลบ Orphan Schemaต้องตรวจ Usageก่อน

Search Sourceทั้ง Server

287. SQL Query Logช่วยหา Usageได้ไหม

Advanced Database Adminสามารถดู Query Activityได้

แต่ไม่จำเป็นสำหรับ Caseง่าย

288. Search Source Codeมักง่ายกว่า

ถ้ามี Sourceครบ

289. Escrow Resourceทำให้ Search Queryยาก

ใช้:

  • Documentation

  • Developer Support

  • SQL Package

แทน

290. Errorแสดง Queryเต็มมีประโยชน์มาก

อ่านว่า:

SELECT ...
FROM ...
WHERE ...

จะเห็น Table/Columnที่ Resourceคาด

291. แต่ระวัง Query Logมีข้อมูล Player

ก่อนโพสต์ Publicควร Maskข้อมูลที่ไม่จำเป็น

292. SQL Injectionไม่เกี่ยวกับ Missing Tableโดยตรง

เป็น Security Topicอีกเรื่อง

แต่ Parameterized Queriesยังสำคัญ

293. อย่าแก้ Errorด้วยการต่อ SQL Stringมั่ว

เพียงเพื่อเปลี่ยน Columnแบบ Dynamic

294. Server Ownerไม่จำเป็นต้องรู้ SQLทั้งหมด

แต่ควรรู้คำพื้นฐาน:

  • SELECT

  • INSERT

  • UPDATE

  • ALTER

  • CREATE

295. SELECT

อ่านข้อมูล

296. INSERT

สร้าง Rowใหม่

297. UPDATE

แก้ Rowที่มีอยู่

298. DELETE

ลบ Row

299. CREATE TABLE

สร้าง Table

300. ALTER TABLE

แก้โครงสร้าง Table

301. DROP TABLE

ลบ Tableทั้งหมด

302. คำสั่งไหนเสี่ยงที่สุดสำหรับมือใหม่

โดยเฉพาะ:

  • DELETE

  • DROP

  • ALTER

ถ้าไม่เข้าใจ Scope

303. SELECTก่อน UPDATE

เป็นแนวปฏิบัติที่ดี

ดู Rowsก่อนเปลี่ยนข้อมูล

304. SHOW CREATE TABLEเป็น Read-only Inspection

เหมาะมากสำหรับ Troubleshooting Schema

305. DESCRIBEก็เช่นกัน

ช่วยดู Columnโดยไม่แก้ Data

306. วิธี Troubleshootแบบปลอดภัยเริ่มจาก Read-only

ก่อนทำ Migration/ALTER

307. Step 1 — อ่าน Errorเต็ม

ตัวอย่าง:

Unknown column 'garage_id' in 'field list'

308. Step 2 — หา Resource

ดู Stack/Console Prefix

309. Step 3 — หา Table

ดู Queryว่า Columnอยู่ใน Tableไหน

310. Step 4 — Inspect Schema

DESCRIBE your_table;

311. Step 5 — ตรวจ Resource Version

ดู Version/Changelog

312. Step 6 — หา Migration

มองหา SQL Updateที่เพิ่ม garage_id

313. Step 7 — Backup

ก่อนแก้ Production

314. Step 8 — Run Official Migration

ตาม Developer Instructions

315. Step 9 — Restart/Reload Resource

ตามความเหมาะสม

316. Step 10 — Test Featureเดิม

ดูทั้ง Consoleและ Data

317. ถ้าไม่มี Tableเลย

Flowคือ:

Resource
→ Installation SQL
→ Database Selection
→ Import

318. ถ้ามี Tableแต่ Columnหาย

Flowคือ:

Resource Version
→ Migration
→ Schema Comparison

319. ถ้ามี Columnแต่ชื่อไม่ตรง

ตรวจ:

  • Resourceสำหรับ Frameworkผิดหรือไม่

ก่อน Rename

320. ถ้ามีทุกอย่างแต่ Errorยังบอกไม่มี

ตรวจว่า Connectionไป Databaseตัวเดียวกับที่คุณกำลัง Inspectหรือไม่

321. Database Connectionอาจใช้ Cache Configเก่า

Resource/Serverอาจยังไม่ได้ Restartหลังเปลี่ยน Connection String

322. Restartอย่างมีแผน

อย่า Restart Productionซ้ำโดยไม่ดู Config

323. Table Missingหลัง Server Restartแต่ก่อนหน้านี้ใช้ได้

อาจ FiveMกลับไป Connection Configคนละ Environmentหลัง Restart

เช่น Environment Variableไม่ได้ถูกโหลด

324. Config Sourceหลายชั้นต้องระวัง

  • server.cfg

  • Environment

  • Panel Variables

ค่าใด Overrideค่าใดต้องรู้

325. Databaseชื่อผิดหลัง Restart

เป็นสัญญาณดีให้ตรวจ Config Loading

326. Unknown Columnเกิดเฉพาะ Test Server

Productionอาจมี Migrationที่ Testยังไม่ได้ Run

327. Schemaควร Syncทุก Environment

Development
→ Staging
→ Production

ควรใช้ Migrationชุดเดียวกัน

328. Manual Production Changeทำให้ Devตามไม่ทัน

นี่คือเหตุผลที่ควรเก็บ Migration Files

329. ตัวอย่าง Migrationที่ดี

หนึ่ง Fileต่อ Version เช่น:

001_initial.sql
002_add_last_login.sql
003_add_vehicle_state.sql

330. ทำไม Numberingช่วย

รู้ลำดับที่ต้อง Run

331. แต่ Third-party Resourceอาจใช้รูปแบบอื่น

ยึด Documentationของ Developer

332. Migrationอัตโนมัติดีไหม

สะดวก แต่ Productionควรมี Backupเพราะ Schemaยังถูกแก้จริง

333. Auto Migration Failต้องดู Errorแรก

อย่าเพียง Restartซ้ำหวังว่าจะผ่าน

334. Database Userไม่มี ALTER Permission

Auto Migrationอาจ Fail

แล้ว Resourceเริ่มต่อด้วย Schemaเก่า

335. นี่ทำให้ Unknown Columnตามมา

จึงควรอ่าน Migration Errorก่อน Unknown Column

336. Permission MigrationกับRuntimeอาจต่างกัน

Productionบางระบบ Run Migrationด้วย Admin User

แล้ว Runtimeใช้ Limited User

เป็นแนวทางที่ดี

337. มือใหม่ไม่จำเป็นต้องทำแยกทันที

แต่ควรไม่ใช้ rootแบบถาวรโดยไม่มีเหตุผล

338. Errorหลัง Restore Backupจากก่อน Update

ถ้า Codeยังเป็น Versionใหม่แต่ Databaseถูก Restoreกลับ Versionเก่า:

  • Unknown Columnเกิดได้ทันที

339. Restoreทั้ง CodeและDatabaseให้เป็น Versionคู่กัน

ถ้าจะ Rollbackเต็มรูปแบบ

340. Database Backup Dateสำคัญ

ต้องรู้ว่า Backupถูกสร้างก่อนหรือหลัง Migrationใด

341. อย่าตั้งชื่อ Backupแค่ backup.sql

ใช้ชื่อที่รู้:

  • Date

  • Version

จะช่วยภายหลัง

342. ตัวอย่าง

fivem-db-before-phone-v3.sql

ช่วยรู้จุดประสงค์

343. Backupมีข้อมูลผู้เล่น

ต้องเก็บ Private

344. อย่า Upload Dumpขึ้น Public Discord

อาจมี:

  • Identifiers

  • Personal Data

  • Credentialsบางระบบ

345. Error Screenshotควร Maskข้อมูลที่ไม่จำเป็น

แต่คง:

  • Table

  • Column

  • Resource

ไว้ให้ Debugได้

346. Staffทั่วไปแก้ Schemaได้ไหม

ควรจำกัดให้:

  • Developer

  • Server Owner

หรือผู้ที่เข้าใจ Database

347. ให้หลายคนแก้ Databaseพร้อมกันเสี่ยง

เพราะอาจ Run Migrationซ้ำ

348. Change Logภายในทีมช่วยได้

จดว่าใคร:

  • แก้อะไร

  • เมื่อไร

349. Database Lockเกิดจาก ALTERได้ไหม

Schema Changesบางประเภทอาจกระทบ Tableขณะทำงาน

จึงควร Maintenance

350. Tableใหญ่ Migrationอาจใช้เวลามากขึ้น

โดยเฉพาะ Transactions/Logsจำนวนมาก

351. อย่า Run ALTERหนักช่วง Peak

ลด Riskต่อ Players

352. Optimizeก่อน/หลัง Migrationจำเป็นไหม

ไม่เสมอไป

อย่าทำ Operationsเพิ่มโดยไม่มีเหตุผล

353. Schema Fixที่ดีต้อง Minimum Necessary Change

เปลี่ยนเฉพาะสิ่งที่ Resource Versionต้องการ

354. ไม่ควร “ปรับให้เหมือน Tutorialทั้งหมด”

Serverคุณอาจมี Custom Schema

355. Tutorialช่วยเข้าใจ Concept

แต่ Source of Truthควรเป็น:

  • Resource Version

  • Framework

  • Production Schema

356. Table Doesn't Exist FAQ

FiveM ขึ้น Table Doesn't Exist คืออะไร

Resourceกำลัง Query Tableที่ไม่มีอยู่ใน Databaseที่ FiveMเชื่อมอยู่

แก้อย่างไร

ตรวจว่า Import SQL/Migrationของ Resourceครบหรือไม่ และ FiveMเชื่อม Databaseถูกตัวหรือไม่

ต้องสร้าง Tableเองไหม

ไม่ควรเดา ควรใช้ SQL Schemaจาก Resourceหรือ Frameworkที่ถูก Version

Unknown Column คืออะไร

Tableมีอยู่ แต่ Queryเรียก Columnที่ไม่มีใน Schema

Unknown Columnเกิดหลัง Updateเพราะอะไร

Resourceใหม่อาจต้อง Migrationเพื่อเพิ่ม/เปลี่ยน Column

Import SQLซ้ำได้ไหม

ไม่ควรทำแบบสุ่ม เพราะ Install SQLบางไฟล์อาจสร้าง Tableใหม่หรือกระทบ Dataเดิม

ต้อง Backupไหม

ควร Backupก่อน Migration, ALTER หรือ Import SQLบน Production

Tableมีใน phpMyAdminแต่ FiveMบอกไม่มี

ตรวจว่า FiveMกับ phpMyAdminกำลังดู Databaseเดียวกัน

Tableชื่อเหมือนแต่ตัวพิมพ์ต่างกันมีผลไหม

อาจมีตาม Environment จึงควรใช้ชื่อให้ตรง Schemaจริง

ESX Resourceใช้กับ QBCoreแล้ว Unknown Columnทำอย่างไร

ตรวจ Resource Compatibility/Framework Configก่อนแก้ Database

เพิ่ม Columnให้ Errorหายได้ไหม

อาจทำให้ Queryไม่ Error แต่ไม่ได้รับประกัน Logicถูก ต้องรู้ Type, Default และข้อมูลที่ควรเก็บ

เปลี่ยน Columnเป็น VARCHARทั้งหมดได้ไหม

ไม่ควร เพราะ Resourceอาจต้องใช้ Date, Number, JSON หรือ Indexเฉพาะ

Unknown Columnเฉพาะ Characterหนึ่งเกิดได้ไหม

ได้ในบาง Data Logic แต่ Unknown Columnจริงมักเป็น Schema-level และมักกระทบ Queryแบบเดียวกันทุกคน

Missing Tableเกิดเฉพาะ Resourceเดียวทำอย่างไร

ตรวจ SQL Installation/Migrationของ Resourceนั้น

ต้องลบ Databaseแล้ว Importใหม่ไหม

โดยทั่วไปไม่จำเป็น และเสี่ยงข้อมูลหายมาก

Clear FiveM Cacheช่วยไหม

โดยทั่วไปไม่ เพราะปัญหาอยู่ฝั่ง Database Schema

Restart FiveMช่วยไหม

ถ้า Schemaยังผิด Errorจะกลับมา

Table Doesn't Existหลังย้าย Hostทำอย่างไร

ตรวจว่า Restore Databaseครบและ Connection Stringชี้ Databaseที่ถูกต้อง

Unknown Columnหลัง Restore Backupทำอย่างไร

Backupอาจเป็น Schema Versionเก่ากว่า Codeที่ใช้อยู่ ต้อง Migrationให้ตรง Version

Auto Migrationไม่ทำงานเพราะอะไร

อาจเกิดจาก:

  • Permission

  • Resource Error

  • Version

ต้องดู Consoleก่อน Errorอื่น

Database Userต้องมี ALTER Permissionไหม

เฉพาะกรณี Resourceต้อง Auto-migrate Schema ถ้า Migrationทำ Manualด้วย Admin User Runtime Userอาจไม่จำเป็นต้องมี

Error 1054 คืออะไร

มักสัมพันธ์กับ Unknown Column

Error 1146 คืออะไร

มักสัมพันธ์กับ Table Doesn't Exist

Table Missingทำข้อมูลหายไหม

การที่ Tableหายไม่ได้บอกโดยอัตโนมัติว่าข้อมูลถูกลบ เพราะอาจกำลังเชื่อม Databaseผิดตัว ต้องตรวจให้แน่ใจก่อน

Characterทั้งหมดหายหลังย้าย Serverทำอย่างไร

ตรวจ Connection Stringและ Database Nameก่อน Import/Restoreซ้ำ เพราะ FiveMอาจกำลังใช้ Databaseเปล่า

สรุป FiveM MySQL Table Doesn't Exist และ Unknown Column

FiveM Error Table Doesn't Exist และ Unknown Column เป็นปัญหาที่เกิดหลัง Database Connection สำเร็จแล้ว แต่ Schema ที่อยู่ใน Database ไม่ตรงกับ Query ของ Resource

จำลำดับนี้ไว้:

Table ไม่มี → ตรวจ Installation SQL / Database ที่เชื่อม
Table มีแต่ Column ไม่มี → ตรวจ Migration / Resource Version
ชื่อ Column ไม่ตรง Framework → ตรวจ Compatibility / Config
เพิ่ง Restore Database → ตรวจ Schema Version
เพิ่ง Update Script → อ่าน Changelog และ Migration ก่อน

สิ่งที่ comsiam แนะนำคืออย่าเห็น Unknown column แล้วสร้าง Columnตามชื่อ Errorทันที เพราะ Schemaไม่ได้มีเพียงชื่อ Field แต่ยังมี Data Type, Default, Index, Nullability และ Logicว่าค่านั้นมาจากไหน การสร้าง Columnแบบเดาอาจทำให้ Errorหายแต่ข้อมูล Character, Vehicle, Banking หรือ Businessผิดเงียบ ๆ ในภายหลัง

อีกหลักที่ comsiam แนะนำคือก่อน Import SQL, Run Migration หรือใช้ ALTER TABLE กับ Production Database ให้ Backupก่อนเสมอ จากนั้นใช้ Schemaและ Migrationที่ตรงกับ Resource Versionจริง ทดสอบ Featureที่เคย Error และตรวจข้อมูลที่บันทึกใน Databaseด้วย ไม่ใช่ดูเพียงว่า Consoleไม่มีข้อความแดงแล้วสรุปว่าระบบสมบูรณ์

Comments

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด