MySQL ಉಲ್ಲೇಖ ಮಾರ್ಗದರ್ಶಿ. PHP ಮತ್ತು MySQL ನಡುವಿನ MySQL ಪರಸ್ಪರ ಕ್ರಿಯೆಯಲ್ಲಿ ಫೈಲ್‌ಗಳನ್ನು ಓದುವುದರ ಮೇಲಿನ ನಿರ್ಬಂಧವನ್ನು ಬೈಪಾಸ್ ಮಾಡುವುದು

"file_name.txt" ಅನ್ನು ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಿ tbl_name [ ""] ನಿಂದ ಮುಚ್ಚಲಾಗಿದೆ ] [(col_name,...)]

LOAD DATA INFILE ಆಜ್ಞೆಯು ಪಠ್ಯ ಫೈಲ್‌ನಿಂದ ಸಾಲುಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಹೆಚ್ಚಿನ ವೇಗದಲ್ಲಿ ಟೇಬಲ್‌ಗೆ ಸೇರಿಸುತ್ತದೆ. LOCAL ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್‌ನಿಂದ ಫೈಲ್ ಅನ್ನು ಓದಲಾಗುತ್ತದೆ. LOCAL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ಫೈಲ್ ಸರ್ವರ್‌ನಲ್ಲಿ ಇರಬೇಕು. (ಲೋಕಲ್ ಆಯ್ಕೆಯು MySQL ಆವೃತ್ತಿ 3.22.6 ಮತ್ತು ನಂತರದಲ್ಲಿ ಲಭ್ಯವಿದೆ.)

ಓದಬೇಕಾದ ಪಠ್ಯ ಫೈಲ್‌ಗಳು ಸರ್ವರ್‌ನಲ್ಲಿದ್ದರೆ, ಭದ್ರತಾ ಕಾರಣಗಳಿಗಾಗಿ ಈ ಫೈಲ್‌ಗಳು ಡೇಟಾಬೇಸ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿರಬೇಕು ಅಥವಾ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಂದ ಓದಬಹುದು. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸರ್ವರ್ ಫೈಲ್‌ಗಳಲ್ಲಿ ಲೋಡ್ ಡೇಟಾ INFILE ಆಜ್ಞೆಯನ್ನು ಬಳಸಲು, ನೀವು ಸರ್ವರ್ ಹೋಸ್ಟ್‌ನಲ್ಲಿ FILE ಸವಲತ್ತುಗಳನ್ನು ಹೊಂದಿರಬೇಕು. MySQL ನಿಂದ ನೀಡಲಾದ 4.2.7 ಸವಲತ್ತುಗಳನ್ನು ನೋಡಿ.

MySQL 3.23.49 ಮತ್ತು MySQL 4.0.2 ರಲ್ಲಿ, mysqld ಡೀಮನ್ ಅನ್ನು --local-infile=0 ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿದರೆ ಅಥವಾ ಕ್ಲೈಂಟ್ LOCAL ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸದಿದ್ದರೆ LOCAL ಆಜ್ಞೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ವಿಭಾಗ 4.2.4 ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಕಮಾಂಡ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಭದ್ರತಾ ಪರಿಗಣನೆಗಳನ್ನು ನೋಡಿ.

LOW_PRIORITY ಕೀವರ್ಡ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಇತರ ಕ್ಲೈಂಟ್‌ಗಳು ಟೇಬಲ್ ಅನ್ನು ಓದುವುದನ್ನು ಮುಗಿಸುವವರೆಗೆ ಈ LOAD DATA ಆಜ್ಞೆಯ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯು ವಿಳಂಬವಾಗುತ್ತದೆ.

MyISAM ಕೋಷ್ಟಕಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ನೀವು CONCURRENT ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಲೋಡ್ DATA ಆಜ್ಞೆಯು ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಇತರ ಥ್ರೆಡ್‌ಗಳು ಟೇಬಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಹಿಂಪಡೆಯಬಹುದು. ಯಾವುದೇ ಥ್ರೆಡ್ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಟೇಬಲ್ ಅನ್ನು ಬಳಸದಿದ್ದರೂ ಸಹ, ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸುವುದರಿಂದ ಲೋಡ್ ಡೇಟಾ ಎಕ್ಸಿಕ್ಯೂಶನ್‌ನಲ್ಲಿ ಸ್ವಲ್ಪ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.

LOCAL ಆಯ್ಕೆಯನ್ನು ಬಳಸುವಾಗ, ಫೈಲ್‌ನ ವಿಷಯಗಳು ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್‌ನಿಂದ ಸರ್ವರ್‌ಗೆ ಚಲಿಸಬೇಕಾದ ಕಾರಣ ಫೈಲ್‌ಗಳನ್ನು ನೇರವಾಗಿ ಪ್ರವೇಶಿಸಲು ಸರ್ವರ್‌ಗೆ ಅನುಮತಿಸುವುದಕ್ಕಿಂತ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯು ಸ್ವಲ್ಪ ನಿಧಾನವಾಗಿರಬಹುದು. ಮತ್ತೊಂದೆಡೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು FILE ಸವಲತ್ತುಗಳ ಅಗತ್ಯವಿಲ್ಲ.

3.23.24 ಕ್ಕಿಂತ ಮೊದಲು MySQL ನ ಆವೃತ್ತಿಗಳನ್ನು ಬಳಸುವಾಗ, LOAD DATA INFILE ಆಜ್ಞೆಯನ್ನು FIFO ನಿಂದ ಓದಲಾಗುವುದಿಲ್ಲ. ನೀವು FIFO (ಉದಾ: gunzip stdout) ನಿಂದ ಓದಬೇಕಾದರೆ, ನೀವು ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್ ಅನ್ನು ಬಳಸಬೇಕು.

mysqlimport ಸೌಲಭ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಡೇಟಾ ಫೈಲ್‌ಗಳನ್ನು ಸಹ ಲೋಡ್ ಮಾಡಬಹುದು. ಈ ಸೌಲಭ್ಯವು ಲೋಡ್ ಡೇಟಾ INFILE ಆಜ್ಞೆಗಳನ್ನು ಸರ್ವರ್‌ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ. --local ಆಯ್ಕೆಯು ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್‌ನಿಂದ ಡೇಟಾ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು mysqlimport ಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಎರಡೂ ಡೇಟಾ ಕಂಪ್ರೆಷನ್ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬೆಂಬಲಿಸಿದರೆ ನಿಧಾನ ನೆಟ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿ ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಪಡೆಯಲು ನೀವು --compress ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು.

ಫೈಲ್‌ಗಳು ಸರ್ವರ್‌ನಲ್ಲಿ ಇರುವ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಎರಡನೆಯದು ಈ ಕೆಳಗಿನ ನಿಯಮಗಳ ಪ್ರಕಾರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:

  • ಫೈಲ್‌ಗೆ ಸಂಪೂರ್ಣ (ಪೂರ್ಣ) ಮಾರ್ಗವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಸರ್ವರ್ ಬದಲಾವಣೆಗಳಿಲ್ಲದೆ ಈ ಮಾರ್ಗವನ್ನು ಬಳಸುತ್ತದೆ.
  • ಫೈಲ್‌ಗೆ ಸಂಬಂಧಿತ ಮಾರ್ಗವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಆರಂಭಿಕ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಸರ್ವರ್‌ನ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ (ಡೇಟಾಡಿರ್) ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಡೈರೆಕ್ಟರಿಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಫೈಲ್ ಅನ್ನು ಹುಡುಕಲಾಗುತ್ತದೆ.
  • ಆರಂಭಿಕ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ ಫೈಲ್‌ಗೆ ಮಾರ್ಗವನ್ನು ನೀಡಿದರೆ, ನಂತರ ಸರ್ವರ್ ಈ ಫೈಲ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವ ಡೇಟಾಬೇಸ್‌ನ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಹುಡುಕುತ್ತದೆ.

`./myfile.txt" ಎಂದು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಅನ್ನು ಸರ್ವರ್‌ನ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಿಂದ ಓದಲಾಗುತ್ತದೆ, ಆದರೆ `myfile.txt" ಎಂದು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವ ಡೇಟಾಬೇಸ್ ಡೈರೆಕ್ಟರಿಯಿಂದ ಓದಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕೆಳಗಿನ LOAD DATA ಆಜ್ಞೆಯು db1 ಗಾಗಿ ಡೇಟಾಬೇಸ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ data.txt ಫೈಲ್ ಅನ್ನು ಓದುತ್ತದೆ ಏಕೆಂದರೆ db1 ಪ್ರಸ್ತುತ ಡೇಟಾಬೇಸ್ ಆಗಿದ್ದು, ಆಜ್ಞೆಯು ಫೈಲ್ ಅನ್ನು db2 ಡೇಟಾಬೇಸ್ ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಲು ಸ್ಪಷ್ಟವಾಗಿ ಸೂಚಿಸಿದರೂ ಸಹ:

Mysql>USE db1; mysql> "data.txt" ಡೇಟಾ ಇನ್‌ಫೈಲ್ ಅನ್ನು ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಿ db2.my_table;

REPLACE ಮತ್ತು IGNORE ಕೀವರ್ಡ್‌ಗಳು ಇನ್‌ಪುಟ್ ರೆಕಾರ್ಡ್‌ಗಳ ಸಂಸ್ಕರಣೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತವೆ, ಅವುಗಳು ಅದೇ ವಿಶಿಷ್ಟವಾದ ಪ್ರಮುಖ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ದಾಖಲೆಗಳ ನಕಲುಗಳಾಗಿವೆ. ನೀವು REPLACE ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಹೊಸ ಸಾಲುಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಾಲುಗಳನ್ನು ಅದೇ ಅನನ್ಯ ಕೀಲಿಯೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತವೆ. ನೀವು IGNORE ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವವುಗಳಂತೆಯೇ ಅದೇ ಅನನ್ಯ ಕೀಲಿಯನ್ನು ಹೊಂದಿರುವ ಇನ್‌ಪುಟ್ ಸಾಲುಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ. ಯಾವುದೇ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ನಕಲಿ ಕೀ ಮೌಲ್ಯವನ್ನು ಪತ್ತೆಮಾಡಿದರೆ, ದೋಷವನ್ನು ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಉಳಿದ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.

LOCAL ಕೀವರ್ಡ್ ಬಳಸಿ ಸ್ಥಳೀಯ ಫೈಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಿದರೆ, ಈ ಕಾರ್ಯಾಚರಣೆಯ ಮಧ್ಯದಲ್ಲಿ ಸರ್ವರ್ ಡೇಟಾ ವರ್ಗಾವಣೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ IGNORE ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದಾಗ ಆಜ್ಞೆಯ ಡೀಫಾಲ್ಟ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಒಂದೇ ಆಗಿರುತ್ತದೆ.

ಖಾಲಿ MyISAM ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಬಳಸುವಾಗ, ಎಲ್ಲಾ ಅನನ್ಯವಲ್ಲದ ಸೂಚಿಕೆಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಬ್ಯಾಚ್‌ನಲ್ಲಿ ರಚಿಸಲಾಗುತ್ತದೆ (ರಿಪೇರಿನಂತೆ). ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸೂಚಿಕೆಗಳಿರುವಾಗ ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಗಮನಾರ್ಹವಾಗಿ ವೇಗಗೊಳಿಸುತ್ತದೆ.

LOAD DATA INFILE ಆಜ್ಞೆಯು ಆಯ್ಕೆಗೆ ಪೂರಕವಾಗಿದೆ ... INTO OUTFILE. ವಿಭಾಗ 6.4.1 SELECT ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ನೋಡಿ. ಡೇಟಾಬೇಸ್‌ನಿಂದ ಫೈಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಬರೆಯಲು, ಆಯ್ಕೆಮಾಡಿ ... INTO OUTFILE ಅನ್ನು ಬಳಸಿ. ಡೇಟಾಬೇಸ್‌ಗೆ ಡೇಟಾವನ್ನು ಮತ್ತೆ ಓದಲು, ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. FIELDS ಮತ್ತು LINES ಗಾಗಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಎರಡೂ ಆಜ್ಞೆಗಳಲ್ಲಿ ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಎರಡೂ ಭಾಗಗಳು ಐಚ್ಛಿಕವಾಗಿರುತ್ತವೆ, ಆದರೆ ಎರಡನ್ನೂ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ನಂತರ FIELDS LINES ಗೆ ಮುಂಚಿತವಾಗಿರಬೇಕು.

FIELDS ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಅದರ ಪ್ರತಿಯೊಂದು ಉಪವಿವರಣೆಗಳು (ಅವರಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ, ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ, ಮತ್ತು ಎಸ್ಕೇಪ್ಡ್ ಮೂಲಕ) ಸಹ ಐಚ್ಛಿಕವಾಗಿರುತ್ತದೆ, ಆದರೆ ಅವುಗಳಲ್ಲಿ ಕನಿಷ್ಠ ಒಂದನ್ನಾದರೂ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು.

FIELDS ಹೇಳಿಕೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸದಿದ್ದರೆ, ಅದರ ನಿಯತಾಂಕಗಳು ಈ ಕೆಳಗಿನ ಮೌಲ್ಯಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತವೆ:

"\t" ನಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾದ ಕ್ಷೇತ್ರಗಳು "" ನಿಂದ "\\" ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ

LINES ಹೇಳಿಕೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸದಿದ್ದರೆ, ಅದು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಈ ಕೆಳಗಿನ ರಚನೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ:

"\n" ನಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳು

ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಡೀಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳೊಂದಿಗೆ, ಇನ್‌ಪುಟ್ ಡೇಟಾವನ್ನು ಓದುವಾಗ ಲೋಡ್ ಡೇಟಾ INFILE ಆಜ್ಞೆಯು ಈ ಕೆಳಗಿನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:

  • ಸಾಲಿನ ಅಂತ್ಯವನ್ನು `\n" ಅಕ್ಷರಗಳಾಗಿ ಹುಡುಕಿ
  • ಟ್ಯಾಬ್ ಅಕ್ಷರಗಳ ಆಧಾರದ ಮೇಲೆ ಸಾಲುಗಳನ್ನು ಕ್ಷೇತ್ರಗಳಾಗಿ ವಿಭಜಿಸಿ.
  • ಉದ್ಧರಣ ಅಕ್ಷರಗಳೊಳಗೆ ಕ್ಷೇತ್ರಗಳನ್ನು ಸುತ್ತುವರಿಯಬೇಕೆಂದು ನಿರೀಕ್ಷಿಸಬೇಡಿ.
  • ಟ್ಯಾಬ್, ನ್ಯೂಲೈನ್, ಅಥವಾ `\" ಅಕ್ಷರಗಳನ್ನು ಮೊದಲು ಸಂಭವಿಸುವ `\" ಅಕ್ಷರಗಳನ್ನು ಕ್ಷೇತ್ರ ಮೌಲ್ಯದ ಭಾಗವಾಗಿ ಅರ್ಥೈಸಿಕೊಳ್ಳಿ.

ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಔಟ್‌ಪುಟ್ ಬರೆಯಲು ಡೀಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಜಾರಿಯಲ್ಲಿದ್ದರೆ, SELECT ... INTO OUTFILE ಆಜ್ಞೆಯು ಈ ಕೆಳಗಿನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:

  • ಕ್ಷೇತ್ರಗಳ ನಡುವೆ ಟ್ಯಾಬ್ ಅಕ್ಷರಗಳನ್ನು ಸೇರಿಸಿ.
  • ಉದ್ಧರಣ ಅಕ್ಷರಗಳಲ್ಲಿ ಕ್ಷೇತ್ರಗಳನ್ನು ಸೇರಿಸಬೇಡಿ. ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳಲ್ಲಿ ಕಂಡುಬರುವ ಟ್ಯಾಬ್, ನ್ಯೂಲೈನ್ ಅಥವಾ `\" ಅಕ್ಷರಗಳ ನಿದರ್ಶನಗಳಿಂದ ತಪ್ಪಿಸಿಕೊಳ್ಳಲು `\" ಅಕ್ಷರಗಳನ್ನು ಬಳಸಿ.
  • ಪ್ರತಿ ಪ್ರವೇಶದ ಕೊನೆಯಲ್ಲಿ ಹೊಸ ಸಾಲುಗಳನ್ನು ಸೇರಿಸಿ.

`\" ಪ್ರವೇಶದಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಲಾದ FIELDS ಮೌಲ್ಯಕ್ಕೆ ಎರಡು ಬ್ಯಾಕ್‌ಸ್ಲ್ಯಾಷ್‌ಗಳ ಅಗತ್ಯವಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ, ಅದನ್ನು ಒಂದು ಬ್ಯಾಕ್‌ಸ್ಲ್ಯಾಷ್‌ನಂತೆ ಓದಬೇಕು.

IGNORE ಸಂಖ್ಯೆ LINES ಆಯ್ಕೆಯನ್ನು ಫೈಲ್‌ನ ಪ್ರಾರಂಭದಲ್ಲಿ ಕಾಲಮ್ ಹೆಸರುಗಳ ಹೆಡರ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಬಳಸಬಹುದು:

Mysql> ಲೋಡ್ ಡೇಟಾ INFILE "/tmp/file_name" ಅನ್ನು ಟೇಬಲ್ ಪರೀಕ್ಷೆಗೆ 1 ಸಾಲುಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ;

ಡೇಟಾಬೇಸ್‌ನಿಂದ ಫೈಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಓದಲು ಮತ್ತು ನಂತರ ಫೈಲ್‌ನಿಂದ ಡೇಟಾಬೇಸ್‌ಗೆ ಹಿಂತಿರುಗಲು ಲೋಡ್ ಡೇಟಾ INFILE ಜೊತೆಗೆ SELECT ... INTO OUTFILE ಅನ್ನು ಬಳಸುವಾಗ, ಎರಡೂ ಆಜ್ಞೆಗಳಿಗೆ ಕ್ಷೇತ್ರ ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕ್ರಿಯೆ ಆಯ್ಕೆಗಳು ಒಂದೇ ಆಗಿರಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, ಈ ಫೈಲ್‌ನ ವಿಷಯಗಳನ್ನು ಸರಿಯಾಗಿ ಅರ್ಥೈಸಲು ಲೋಡ್ ಡೇಟಾ INFILE ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. SELECT ... INTO OUTFILE ಆಜ್ಞೆಯನ್ನು ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಕ್ಷೇತ್ರಗಳೊಂದಿಗೆ ಫೈಲ್‌ಗೆ ಬರೆಯಲು ಬಳಸಲಾಗುತ್ತದೆ ಎಂದು ಭಾವಿಸೋಣ:

Mysql> ಆಯ್ಕೆ * ಔಟ್‌ಫೈಲ್ ಆಗಿ "data.txt" ಫೀಲ್ಡ್‌ಗಳನ್ನು ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ "," ನಿಂದ ...;

Mysql> ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್ "data.txt" ಅನ್ನು ಟೇಬಲ್ ಟೇಬಲ್ 2 ಕ್ಷೇತ್ರಗಳಿಗೆ "," ಮೂಲಕ ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ;

Mysql> "data.txt" ಡೇಟಾ ಇನ್‌ಫೈಲ್ ಅನ್ನು ಟೇಬಲ್ ಟೇಬಲ್ 2 ಫೀಲ್ಡ್‌ಗಳಿಗೆ ಲೋಡ್ ಮಾಡಿ "\t" ನಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ;

ಪ್ರತಿ ಇನ್‌ಪುಟ್ ಲೈನ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಕ್ಷೇತ್ರವಾಗಿ ಅರ್ಥೈಸಿದರೆ ಇದೇ ರೀತಿಯ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯಲಾಗುತ್ತದೆ.

LOAD DATA INFILE ಆಜ್ಞೆಯನ್ನು ಬಾಹ್ಯ ಮೂಲಗಳಿಂದ ಸ್ವೀಕರಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ಸಹ ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, dBASE ಡೇಟಾಬೇಸ್ ಫಾರ್ಮ್ಯಾಟ್ ಫೈಲ್‌ನಲ್ಲಿರುವ ಕ್ಷೇತ್ರಗಳನ್ನು ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಡಬಲ್ ಕೋಟ್‌ಗಳಲ್ಲಿ ಸುತ್ತುವರಿಯಲಾಗುತ್ತದೆ. ಈ ಫೈಲ್‌ನಲ್ಲಿನ ಸಾಲುಗಳು ಹೊಸ ಸಾಲುಗಳೊಂದಿಗೆ ಕೊನೆಗೊಂಡರೆ, ಫೈಲ್ ಅನ್ನು ಬರೆಯಲು ನೀವು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು, ಇದು ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ಸಾಲುಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಸೆಟ್ಟಿಂಗ್ ಆಯ್ಕೆಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ:

Mysql> "data.txt" ಡೇಟಾವನ್ನು ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಿ tbl_name ಫೀಲ್ಡ್‌ಗಳನ್ನು "," ನಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಿ """ ಸಾಲುಗಳಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ "\n";

ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ತಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಯಾವುದೇ ಆಯ್ಕೆಗಳು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ("") ಸೂಚಿಸಬಹುದು. ಸ್ಟ್ರಿಂಗ್ ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, ಫೀಲ್ಡ್‌ಗಳ ಮೌಲ್ಯಗಳು ಎನ್‌ಕ್ಲೋಸ್ಡ್ ಮತ್ತು ಫೀಲ್ಡ್ಸ್ ಎಸ್ಕೇಪ್ ಬೈ ಆಯ್ಕೆಗಳು ಒಂದು ಅಕ್ಷರವನ್ನು ಹೊಂದಿರಬೇಕು. ಫೀಲ್ಡ್‌ಗಳು ಕೊನೆಗೊಂಡಿವೆ ಮತ್ತು ಆಯ್ಕೆಯಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬಹುದು. ಉದಾಹರಣೆಗೆ, ``ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್-ಲೈನ್ ಫೀಡ್' ಜೋಡಿಗಳಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಸಾಲುಗಳನ್ನು ಬರೆಯಲು (MS DOS ಅಥವಾ Windows ಪಠ್ಯ ಫೈಲ್‌ಗಳಂತೆ), ನೀವು ಈ ಕೆಳಗಿನ ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತೀರಿ: "\r\n" ನಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳು .

ಟೇಬಲ್ ಜೋಕ್‌ಗಳನ್ನು ರಚಿಸಿ (ಒಂದು INT ಶೂನ್ಯವಲ್ಲದ AUTO_INCREMENT ಪ್ರೈಮರಿ ಕೀ, ಜೋಕ್ ಟೆಕ್ಸ್ಟ್ ಶೂನ್ಯವಲ್ಲ); ಡೇಟಾ ಇನ್‌ಫೈಲ್ "/tmp/jokes.txt" ಅನ್ನು ಟೇಬಲ್ ಜೋಕ್‌ಗಳಿಗೆ ಲೋಡ್ ಮಾಡಿ "" ನಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ; "\n%%\n" (ಜೋಕ್) ಮೂಲಕ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳು;

ಆಯ್ಕೆಯಿಂದ ಎನ್‌ಕ್ಲೋಸ್ ಮಾಡಲಾದ ಕ್ಷೇತ್ರಗಳು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಕ್ಷರಗಳೊಳಗೆ ಸುತ್ತುವರಿದ ಕ್ಷೇತ್ರಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಐಚ್ಛಿಕವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಟ್ಟರೆ, ನಂತರ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ (ಆಯ್ಕೆ ಮಾಡಿ ... ಔಟ್‌ಫೈಲ್‌ಗೆ) ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ENCLOSEDY ನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಕ್ಷರಗಳಲ್ಲಿ ಸುತ್ತುವರಿಯಲಾಗುತ್ತದೆ. ಅಂತಹ ಔಟ್‌ಪುಟ್‌ನ ಉದಾಹರಣೆ (ಅಲ್ಪವಿರಾಮವನ್ನು ಕ್ಷೇತ್ರ ವಿಭಜಕವಾಗಿ ಬಳಸುವುದು) ಕೆಳಗೆ ತೋರಿಸಲಾಗಿದೆ:

"1","ಎ ಸ್ಟ್ರಿಂಗ್","100.20" "2","ಒಂದು ಸ್ಟ್ರಿಂಗ್ ಹೊಂದಿರುವ , ಅಲ್ಪವಿರಾಮ","102.20" "3","ಒಂದು \" ಉಲ್ಲೇಖ","102.20" "4"," \", ಉಲ್ಲೇಖ ಮತ್ತು ಅಲ್ಪವಿರಾಮ","102.20" ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್

ಐಚ್ಛಿಕವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, CHAR ಮತ್ತು VARCHAR ಪ್ರಕಾರದ ಕ್ಷೇತ್ರಗಳನ್ನು ಮಾತ್ರ ENCLOSED ರಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಕ್ಷರದೊಂದಿಗೆ ಹೈಲೈಟ್ ಮಾಡಲಾಗುತ್ತದೆ:

1,"ಒಂದು ಸ್ಟ್ರಿಂಗ್",100.20 2,"ಒಂದು ಸ್ಟ್ರಿಂಗ್ ಹೊಂದಿರುವ , ಅಲ್ಪವಿರಾಮ",102.20 3,"ಒಂದು \" ಉಲ್ಲೇಖವನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್",102.20 4,"ಒಂದು ಸ್ಟ್ರಿಂಗ್ \", ಉಲ್ಲೇಖ ಮತ್ತು ಅಲ್ಪವಿರಾಮ",102.20

ಎಸ್ಕೇಪ್ಡ್ ಬೈ ಯಿಂದ ಪೂರ್ವಪ್ರತ್ಯಯದೊಂದಿಗೆ ಅವುಗಳನ್ನು ಪೂರ್ವಪ್ರತ್ಯಯದೊಂದಿಗೆ ಫೀಲ್ಡ್ ಮೌಲ್ಯದೊಳಗೆ ಎನ್‌ಕ್ಲೋಸ್ಡ್ ಬೈ ಅಕ್ಷರಗಳ ನೋಟವು ತಪ್ಪಿಸಿಕೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ESCAPED BY ಮೌಲ್ಯವು ಖಾಲಿಯಾಗಿದ್ದರೆ, LOAD DATA INFILE ಹೇಳಿಕೆಯನ್ನು ಸರಿಯಾಗಿ ಓದಲು ಸಾಧ್ಯವಾಗದ ಔಟ್‌ಪುಟ್ ಅನ್ನು ರಚಿಸುವುದು ಸಾಧ್ಯ ಎಂದು ತಿಳಿದಿರಲಿ. ಉದಾಹರಣೆಗೆ, ಎಸ್ಕೇಪ್ ಅಕ್ಷರವು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಆಗಿದ್ದರೆ, ಮೇಲೆ ತೋರಿಸಿರುವ ಔಟ್‌ಪುಟ್ ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ ಇರುತ್ತದೆ. ನಾಲ್ಕನೇ ಸಾಲಿನಲ್ಲಿನ ಎರಡನೇ ಕ್ಷೇತ್ರವು ಉದ್ಧರಣ ಚಿಹ್ನೆಯನ್ನು ಅನುಸರಿಸುವ ಅಲ್ಪವಿರಾಮವನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ, ಅದು (ತಪ್ಪಾಗಿ) ಈ ಕ್ಷೇತ್ರವನ್ನು ಡಿಲಿಮಿಟ್ ಮಾಡಲು ಕಂಡುಬರುತ್ತದೆ:

1,"ಒಂದು ಸ್ಟ್ರಿಂಗ್",100.20 2,"ಒಂದು ಸ್ಟ್ರಿಂಗ್ ಹೊಂದಿರುವ , ಅಲ್ಪವಿರಾಮ",102.20 3,"ಒಂದು "ಉಲ್ಲೇಖ" ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್,102.20 4,"ಒಂದು ", ಉಲ್ಲೇಖ ಮತ್ತು ಅಲ್ಪವಿರಾಮ",102.20

ಇನ್‌ಪುಟ್‌ಗಾಗಿ, ಅಕ್ಷರದಿಂದ ಎನ್‌ಕ್ಲೋಸ್ಡ್, ಇದ್ದರೆ, ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳ ಎರಡೂ ತುದಿಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. (ಐಚ್ಛಿಕವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೂ ಅಥವಾ ಇಲ್ಲದಿದ್ದರೂ ಇದು ನಿಜ; ಇನ್‌ಪುಟ್ ಡೇಟಾದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಐಚ್ಛಿಕವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ.) ಅಕ್ಷರದ ಮೂಲಕ ENCLOSED ಅನ್ನು ಎದುರಿಸಿದರೆ ಅದು ಎಸ್ಕೇಪ್ಡ್ ಬೈ ಕ್ಯಾರೆಕ್ಟರ್‌ನಿಂದ ಮೊದಲು, ಅದನ್ನು ಭಾಗವಾಗಿ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ ಕ್ಷೇತ್ರದ ಪ್ರಸ್ತುತ ಮೌಲ್ಯ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಒಂದು ಕ್ಷೇತ್ರದೊಳಗೆ ಸಂಭವಿಸುವ ಅಕ್ಷರಗಳಿಂದ ಡಬಲ್ ಎನ್‌ಕ್ಲೋಸ್ಡ್ ಆಗಿದ್ದರೆ, ಕ್ಷೇತ್ರವು ಆ ಅಕ್ಷರದೊಂದಿಗೆ ಪ್ರಾರಂಭವಾದರೆ ಅಕ್ಷರಗಳಿಂದ ಏಕ ಎನ್‌ಕ್ಲೋಸ್ಡ್ ಎಂದು ಅರ್ಥೈಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, """ ನಿಂದ ENCLOSED ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ನಂತರ ಉಲ್ಲೇಖಗಳನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ:

""ಬಿಗ್" ಬಾಸ್" -> "ಬಿಗ್" ಬಾಸ್ ದಿ "ಬಿಗ್" ಬಾಸ್ -> "ಬಿಗ್" ಬಾಸ್ ""ಬಿಗ್"" ಬಾಸ್ -> ""ಬಿಗ್"" ಬಾಸ್

FIELDS ESCAPED BY ಆಯ್ಕೆಯನ್ನು ಬರೆಯುವುದು ಅಥವಾ ಓದುವುದನ್ನು ನಿಯಂತ್ರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ ವಿಶೇಷ ಪಾತ್ರಗಳು. ಅಕ್ಷರದಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಿದ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, ಅದನ್ನು ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಕೆಳಗಿನ ಅಕ್ಷರಗಳಿಗೆ ಪೂರ್ವಪ್ರತ್ಯಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ:

  • ಚಿಹ್ನೆಯಿಂದ ಜಾಗ ತಪ್ಪಿಸಲಾಗಿದೆ
  • ಕ್ಷೇತ್ರಗಳನ್ನು ಚಿಹ್ನೆಯಿಂದ ಮುಚ್ಚಲಾಗಿದೆ
  • FIELDS ನ ಮೊದಲ ಅಕ್ಷರವು ಕೊನೆಗೊಂಡಿತು ಮತ್ತು ಸಾಲುಗಳು ಮೌಲ್ಯಗಳಿಂದ ಕೊನೆಗೊಂಡಿವೆ
  • ASCII ಅಕ್ಷರ 0 (ವಾಸ್ತವವಾಗಿ ASCII `0" ಅನ್ನು ಎಸ್ಕೇಪ್ ಅಕ್ಷರದ ನಂತರ ಬರೆಯಲಾಗುತ್ತದೆ, ಶೂನ್ಯ ಮೌಲ್ಯದೊಂದಿಗೆ ಬೈಟ್ ಅಲ್ಲ)

ಅಕ್ಷರದಿಂದ ಎಸ್ಕೇಪ್ಡ್ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿದ್ದರೆ, ಯಾವುದೇ ಅಕ್ಷರಗಳು ತಪ್ಪಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ. ವಾಸ್ತವವಾಗಿ, ಖಾಲಿ ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ಅಕ್ಷರವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದರಲ್ಲಿ ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ, ವಿಶೇಷವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾದ ಡೇಟಾದಲ್ಲಿನ ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳು ಮೇಲಿನ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಯಾವುದೇ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿದ್ದರೆ.

ಅಕ್ಷರದಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಿದ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, ಇನ್‌ಪುಟ್ ಡೇಟಾದ ಸಂದರ್ಭದಲ್ಲಿ, ಅಂತಹ ಅಕ್ಷರದ ಸಂಭವಿಸುವಿಕೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಅಂತಹ ಸಂಭವಿಸುವಿಕೆಯ ನಂತರ ಅಕ್ಷರವನ್ನು ಅಕ್ಷರಶಃ ಕ್ಷೇತ್ರ ಮೌಲ್ಯದ ಭಾಗವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. ವಿನಾಯಿತಿಗಳು `0" ಅಥವಾ `N" ತಪ್ಪಿಸಿಕೊಂಡಿವೆ (ಉದಾಹರಣೆಗೆ, \0 ಅಥವಾ \N ಎಸ್ಕೇಪ್ ಅಕ್ಷರ `\" ಆಗಿದ್ದರೆ). ಈ ಅನುಕ್ರಮಗಳನ್ನು ASCII 0 (ಶೂನ್ಯ ಮೌಲ್ಯ ಬೈಟ್) ಮತ್ತು NULL ಎಂದು ಅರ್ಥೈಸಲಾಗುತ್ತದೆ. NULL ಮೌಲ್ಯವನ್ನು ನಿರ್ವಹಿಸಲು ನಿಯಮಗಳನ್ನು ನೋಡಿ ಕೆಳಗೆ.

ಹೆಚ್ಚು ಪಡೆಯಲು ಸಂಪೂರ್ಣ ಮಾಹಿತಿ`\" ಎಸ್ಕೇಪ್ ಅಕ್ಷರದ ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗಾಗಿ, ವಿಭಾಗ 6.1.1 ಲಿಟರಲ್ಸ್ ಅನ್ನು ನೋಡಿ: ಸ್ಟ್ರಿಂಗ್‌ಗಳು ಮತ್ತು ಸಂಖ್ಯೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವುದು.

ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಕ್ಷೇತ್ರ ಮತ್ತು ಸಾಲು ಸಂಸ್ಕರಣಾ ಆಯ್ಕೆಗಳು ಸಂವಹನ ನಡೆಸುತ್ತವೆ:

  • LINES TERMINATED BY ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಆಗಿದ್ದರೆ ಮತ್ತು FIELDS ನಿಂದ ಕೊನೆಗೊಂಡದ್ದು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಆಗಿಲ್ಲದಿದ್ದರೆ, ನಂತರ ಸಾಲುಗಳು FIELDS TERMINATED by ಅಕ್ಷರಗಳೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತವೆ.
  • FIELDS ನಿಂದ ಮುಕ್ತಾಯಗೊಂಡ ಮತ್ತು FIELDS ENCLOSED ಎರಡೂ ಖಾಲಿಯಾಗಿದ್ದರೆ (""), ಸ್ಥಿರ-ಸ್ಟ್ರಿಂಗ್ ಸ್ವರೂಪವನ್ನು (ಡಿಲಿಮಿಟರ್‌ಗಳಿಲ್ಲ) ಬಳಸಲಾಗುತ್ತದೆ. ಸ್ಥಿರ-ಸಾಲಿನ ಸ್ವರೂಪವು ಕ್ಷೇತ್ರಗಳ ನಡುವೆ ಯಾವುದೇ ವಿಭಜಕಗಳನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಬದಲಿಗೆ, ಕಾಲಮ್ ಮೌಲ್ಯಗಳನ್ನು ಓದುವಾಗ ಮತ್ತು ಬರೆಯುವಾಗ, ಕಾಲಮ್‌ಗಳ ``ಔಟ್‌ಪುಟ್" ಅಗಲವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಕಾಲಮ್ ಅನ್ನು INT(7) ಎಂದು ಘೋಷಿಸಿದರೆ, ಆ ಕಾಲಮ್‌ನ ಮೌಲ್ಯಗಳನ್ನು 7-ಅಕ್ಷರಗಳ ವಿಶಾಲ ಕ್ಷೇತ್ರಗಳನ್ನು ಬಳಸಿ ಬರೆಯಲಾಗುತ್ತದೆ. ಈ ಕಾಲಮ್‌ನ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯಗಳನ್ನು 7 ಅಕ್ಷರಗಳನ್ನು ಓದುವ ಮೂಲಕ ಪಡೆಯಲಾಗುತ್ತದೆ. ಸ್ಥಿರ-ಸ್ಟ್ರಿಂಗ್ ಸ್ವರೂಪವು NULL ಮೌಲ್ಯಗಳ ನಿರ್ವಹಣೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ (ಕೆಳಗೆ ನೋಡಿ). ಮಲ್ಟಿಬೈಟ್ ಅಕ್ಷರ ಸೆಟ್ ಅನ್ನು ಬಳಸುವಾಗ ಸ್ಥಿರ ಗಾತ್ರದ ಸ್ವರೂಪವು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ.

ಬಳಸಿದ FIELDS ಮತ್ತು LINES ಆಯ್ಕೆಗಳನ್ನು ಅವಲಂಬಿಸಿ NULL ಮೌಲ್ಯಗಳನ್ನು ವಿಭಿನ್ನವಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ:

  • ಡೀಫಾಲ್ಟ್ FIELDS ಮತ್ತು LINES ಮೌಲ್ಯಗಳಿಗೆ, NULL ಅನ್ನು ಔಟ್‌ಪುಟ್‌ಗಾಗಿ \N ಎಂದು ಬರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು \N ಅನ್ನು ಇನ್‌ಪುಟ್‌ಗಾಗಿ NULL ಎಂದು ಓದಲಾಗುತ್ತದೆ (ESCAPED BY ಅಕ್ಷರವು `\" ಎಂದು ಊಹಿಸಿ).
  • FIELDS ENCLOSED BY ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, NULL ಅಕ್ಷರದ ಪದದ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುವ ಕ್ಷೇತ್ರವನ್ನು NULL ಮೌಲ್ಯವಾಗಿ ಓದಲಾಗುತ್ತದೆ (FIELDS ENCLOSED BY ಅಕ್ಷರಗಳ ನಡುವೆ NULL ಸುತ್ತುವರಿಯಲ್ಪಟ್ಟ ಪದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಅದನ್ನು "NULL" ಎಂದು ಓದಲಾಗುತ್ತದೆ).
  • FIELDS ESCAPED BY ಖಾಲಿಯಾಗಿದ್ದರೆ, NULL ಅನ್ನು NULL ಪದವಾಗಿ ಬರೆಯಲಾಗುತ್ತದೆ.
  • ಸ್ಥಿರ-ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ (ಇದು ಫೀಲ್ಡ್‌ಗಳನ್ನು ಮುಕ್ತಾಯಗೊಳಿಸಿದರೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿದ್ದರೆ ಸಂಭವಿಸುತ್ತದೆ), NULL ಅನ್ನು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಎಂದು ಬರೆಯಲಾಗುತ್ತದೆ. ಇದು ಒಂದು NULL ಮೌಲ್ಯವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ ಮತ್ತು ಕೊಟ್ಟಿರುವ ಕೋಷ್ಟಕದಲ್ಲಿ ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಫೈಲ್‌ಗೆ ಬರೆಯುವಾಗ ಪ್ರತ್ಯೇಕಿಸಲಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅವೆರಡನ್ನೂ ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿ ಬರೆಯಲಾಗಿದೆ. ಫೈಲ್ ಅನ್ನು ಮತ್ತೆ ಓದಿದಾಗ ಈ ಮೌಲ್ಯಗಳು ವಿಭಿನ್ನವಾಗಿರಬೇಕೆಂದು ನೀವು ಬಯಸಿದರೆ, ನೀವು ಸ್ಥಿರ-ಸಾಲಿನ ಸ್ವರೂಪವನ್ನು ಬಳಸಬಾರದು.

ಕೆಲವು ಪ್ರಕರಣಗಳು ಲೋಡ್ ಡೇಟಾ INFILE ಹೇಳಿಕೆಯಿಂದ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ:

  • ಸ್ಥಿರ-ಗಾತ್ರದ ಸಾಲುಗಳು (ಫೀಲ್ಡ್‌ಗಳು ಕೊನೆಗೊಂಡಿವೆ ಮತ್ತು FIELDS ನಿಂದ ಮುಚ್ಚಲಾಗಿದೆ) ಮತ್ತು BLOB ಅಥವಾ TEXT ಕಾಲಮ್‌ಗಳು.
  • ಡಿಲಿಮಿಟರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ ಅದು ಒಂದೇ ಅಥವಾ ಇನ್ನೊಂದು ಪೂರ್ವಪ್ರತ್ಯಯವಾಗಿದ್ದರೆ, ಲೋಡ್ ಡೇಟಾ INFILE ಗೆ ಇನ್‌ಪುಟ್ ಅನ್ನು ಸರಿಯಾಗಿ ಅರ್ಥೈಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಕೆಳಗಿನ FIELDS ಹೇಳಿಕೆಯು ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ: """ ನಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾದ ಕ್ಷೇತ್ರಗಳು """ ನಿಂದ ಮುಚ್ಚಲ್ಪಟ್ಟವು
  • FIELDS ESCAPED BY ಆಯ್ಕೆಯು ಖಾಲಿಯಾಗಿದ್ದರೆ, ಕ್ಷೇತ್ರ ಮೌಲ್ಯದಲ್ಲಿ FIELDS ಎನ್‌ಕ್ಲೋಸ್ಡ್ ಅಥವಾ ಲೈನ್ಸ್ ಟರ್ಮಿನೇಟ್ ಆಗಿದ್ದು, ನಂತರ FIELDS TERMINATED BY ಫೀಲ್ಡ್ ಅಥವಾ ಲೈನ್ ಅನ್ನು ಅಕಾಲಿಕವಾಗಿ ಓದುವುದನ್ನು ಲೋಡ್ ಡೇಟಾ INFILE ಆಜ್ಞೆಯನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ. ಇದು ಸಂಭವಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಲೋಡ್ ಡೇಟಾ INFILE ಕ್ಷೇತ್ರ ಅಥವಾ ಸಾಲು ಎಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ಸರಿಯಾಗಿ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಕೆಳಗಿನ ಉದಾಹರಣೆಯು ವೈಯಕ್ತಿಕ ಡೇಟಾ ಟೇಬಲ್‌ನ ಎಲ್ಲಾ ಕಾಲಮ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ:

Mysql> ಲೋಡ್ ಡೇಟಾ INFILE "persondata.txt" ಅನ್ನು ಟೇಬಲ್ ವೈಯಕ್ತಿಕ ಡೇಟಾಗೆ;

ಕ್ಷೇತ್ರಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ, ಆದ್ದರಿಂದ ಲೋಡ್ ಡೇಟಾ INFILE ಆಜ್ಞೆಯು ಟೇಬಲ್‌ನ ಪ್ರತಿ ಕಾಲಮ್ ಅನ್ನು ತುಂಬಲು ಇನ್‌ಪುಟ್ ಸಾಲುಗಳನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಇದು ಡೀಫಾಲ್ಟ್ FIELDS ಮತ್ತು LINES ಮೌಲ್ಯಗಳನ್ನು ಬಳಸುತ್ತದೆ.

ನೀವು ಕೆಲವು ಟೇಬಲ್ ಕಾಲಮ್‌ಗಳನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡಲು ಬಯಸಿದರೆ, ನೀವು ಕಾಲಮ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು:

Mysql> ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್ "persondata.txt" ಅನ್ನು ಟೇಬಲ್ ವೈಯಕ್ತಿಕ ಡೇಟಾಗೆ (col1,col2,...);

ಇನ್‌ಪುಟ್ ಫೈಲ್‌ನಲ್ಲಿನ ಕ್ಷೇತ್ರಗಳ ಕ್ರಮವು ಈ ಕೋಷ್ಟಕದಲ್ಲಿನ ಕಾಲಮ್‌ಗಳ ಕ್ರಮದಿಂದ ಭಿನ್ನವಾಗಿರುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಕ್ಷೇತ್ರಗಳ ಪಟ್ಟಿಯನ್ನು ಸಹ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, MySQL ಇನ್‌ಪುಟ್ ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ಟೇಬಲ್ ಕಾಲಮ್‌ಗಳನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.

ಸಾಲು ತುಂಬಾ ಕಡಿಮೆ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಇನ್‌ಪುಟ್ ಫೈಲ್‌ನಲ್ಲಿ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರದ ಕಾಲಮ್‌ಗಳನ್ನು ಅವುಗಳ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳಿಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳ ನಿಯೋಜನೆಯನ್ನು ವಿಭಾಗ 6.5.3 ರಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ ಟೇಬಲ್ ಹೇಳಿಕೆ ಸಿಂಟ್ಯಾಕ್ಸ್ ರಚಿಸಿ.

ಖಾಲಿ ಕ್ಷೇತ್ರದ ಮೌಲ್ಯವನ್ನು ಯಾವುದೇ ಮೌಲ್ಯಕ್ಕಿಂತ ವಿಭಿನ್ನವಾಗಿ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ:

  • ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕಾರಗಳಿಗಾಗಿ, ಕಾಲಮ್ ಅನ್ನು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್‌ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ.
  • ಸಂಖ್ಯಾ ಪ್ರಕಾರಗಳಿಗೆ, ಕಾಲಮ್ ಅನ್ನು 0 ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ.
  • ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಪ್ರಕಾರಗಳಿಗೆ, ಕಾಲಮ್ ಅನ್ನು ಆ ಪ್ರಕಾರದ ಅನುಗುಣವಾದ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ, ``ಶೂನ್ಯ''. ವಿಭಾಗ 6.2.2 ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಡೇಟಾ ಪ್ರಕಾರಗಳನ್ನು ನೋಡಿ.

INSERT ಅಥವಾ UPDATE ಆಜ್ಞೆಯಲ್ಲಿ ಸ್ಟ್ರಿಂಗ್, ಸಂಖ್ಯಾಶಾಸ್ತ್ರ ಅಥವಾ ದಿನಾಂಕ/ಸಮಯದ ಕಾಲಮ್‌ಗಳಿಗೆ ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿಯೋಜಿಸುವ ಪರಿಣಾಮವಾಗಿ ಕಾಲಮ್‌ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಅದೇ ಮೌಲ್ಯಗಳು ಇವುಗಳಾಗಿವೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ.

TIMESTAMP ಪ್ರಕಾರದ ಕಾಲಮ್‌ಗಳನ್ನು ಕಾಲಮ್ ಅನ್ನು NULL ಗೆ ಹೊಂದಿಸಿದರೆ ಅಥವಾ (ಮೊದಲ TIMESTAMP ಕಾಲಮ್‌ಗೆ ಮಾತ್ರ) TIMESTAMP ಕಾಲಮ್ ಕ್ಷೇತ್ರ ಪಟ್ಟಿಯಿಂದ ಹೊರಗಿದ್ದರೆ, ಅಂತಹ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ ಪ್ರಸ್ತುತ ದಿನಾಂಕ ಅಥವಾ ಸಮಯಕ್ಕೆ ಮಾತ್ರ ಹೊಂದಿಸಲಾಗಿದೆ.

ಇನ್‌ಪುಟ್ ಸ್ಟ್ರಿಂಗ್ ಹಲವಾರು ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಹೆಚ್ಚುವರಿ ಕ್ಷೇತ್ರಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಎಚ್ಚರಿಕೆಗಳ ಸಂಖ್ಯೆಯು ಹೆಚ್ಚಾಗುತ್ತದೆ.

LOAD DATA INFILE ಆಜ್ಞೆಯು ಎಲ್ಲಾ ಇನ್‌ಪುಟ್‌ಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿ ಅರ್ಥೈಸುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು ENUM ಅಥವಾ SET ಕಾಲಮ್‌ಗಳಿಗೆ ಸಂಖ್ಯಾ ಮೌಲ್ಯಗಳನ್ನು INSERT ಆಜ್ಞೆಗಳ ರೀತಿಯಲ್ಲಿಯೇ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗುವುದಿಲ್ಲ. ಎಲ್ಲಾ ENUM ಮತ್ತು SET ಮೌಲ್ಯಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು!

C API ಅನ್ನು ಬಳಸುವಾಗ, ನೀವು ಪ್ರಶ್ನೆಯ ಕೊನೆಯಲ್ಲಿ mysql_info() API ಕಾರ್ಯಕ್ಕೆ ಕರೆ ಮಾಡುವ ಮೂಲಕ ಪ್ರಶ್ನೆ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಬಹುದು, ಲೋಡ್ ಡೇಟಾ INFILE . ಈ ಪ್ರಕರಣದ ಮಾಹಿತಿ ಸಾಲಿನ ಸ್ವರೂಪವನ್ನು ಕೆಳಗೆ ತೋರಿಸಲಾಗಿದೆ:

ದಾಖಲೆಗಳು: 1 ಅಳಿಸಲಾಗಿದೆ: 0 ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ: 0 ಎಚ್ಚರಿಕೆಗಳು: 0

INSERT ಆಜ್ಞೆಯೊಂದಿಗೆ ಮೌಲ್ಯಗಳನ್ನು ಬರೆಯುವಾಗ ಅದೇ ಸಂದರ್ಭಗಳಲ್ಲಿ ಎಚ್ಚರಿಕೆಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ (ವಿಭಾಗ 6.4.3 ಇನ್ಸರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ನೋಡಿ), ಇನ್‌ಪುಟ್ ಸ್ಟ್ರಿಂಗ್ ತುಂಬಾ ಕಡಿಮೆ ಅಥವಾ ಹೆಚ್ಚಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರುವಾಗ ಲೋಡ್ ಡೇಟಾ INFILE ಆಜ್ಞೆಯು ಹೆಚ್ಚುವರಿಯಾಗಿ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಎಚ್ಚರಿಕೆಗಳನ್ನು ಎಲ್ಲಿಯೂ ಸಂಗ್ರಹಿಸಲಾಗಿಲ್ಲ; ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ರಿಯೆಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಪೂರ್ಣಗೊಳಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಎಚ್ಚರಿಕೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮಾತ್ರ ಬಳಸಬಹುದು. ಎಚ್ಚರಿಕೆಗಳಿಗೆ ಕಾರಣವೇನು ಎಂಬುದನ್ನು ನಿಖರವಾಗಿ ತಿಳಿಯಲು ನೀವು ಬಯಸಿದರೆ, ಇನ್ನೊಂದು ಫೈಲ್‌ನಲ್ಲಿ SELECT ... INTO OUTFILE ಅನ್ನು ರನ್ ಮಾಡಿ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಮೂಲ ಇನ್‌ಪುಟ್ ಫೈಲ್‌ನೊಂದಿಗೆ ಹೋಲಿಸುವುದು ಆ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯುವ ಏಕೈಕ ಮಾರ್ಗವಾಗಿದೆ.

ಪೈಪ್‌ನಿಂದ ಓದಲು ನೀವು ಲೋಡ್ ಡೇಟಾ ಮಾಡಬೇಕಾದರೆ, ನೀವು ಈ ಕೆಳಗಿನ ಟ್ರಿಕ್ ಅನ್ನು ಬಳಸಬಹುದು:

Mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x cat /nt/mysql/db/x/x mysql -e "ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್ "x" ಅನ್ನು ಟೇಬಲ್‌ಗೆ x" x

3.23.25 ಕ್ಕಿಂತ ಹಳೆಯದಾದ MySQL ಆವೃತ್ತಿಯನ್ನು ಬಳಸುವಾಗ, ಮೇಲಿನದನ್ನು ಲೋಡ್ ಡೇಟಾ ಸ್ಥಳೀಯ INFILE ನೊಂದಿಗೆ ಮಾತ್ರ ಮಾಡಬಹುದು.

ಹೆಚ್ಚು ಪಡೆಯಲು ವಿವರವಾದ ಮಾಹಿತಿಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್‌ಗೆ ಹೋಲಿಸಿದರೆ ಇನ್‌ಸರ್ಟ್‌ನ ಪರಿಣಾಮಕಾರಿತ್ವ ಮತ್ತು ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್‌ನ ವೇಗದ ಕುರಿತು ಮಾಹಿತಿಗಾಗಿ, ವಿಭಾಗ 5.2.9 ಇನ್ಸರ್ಟ್ ಪ್ರಶ್ನೆಗಳ ವೇಗವನ್ನು ನೋಡಿ.

ಬಳಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆಗಳು

ಜೇಸನ್ ಟೈಟಸ್ ಅವರು ಪೋಸ್ಟ್ ಮಾಡಿದ್ದಾರೆ[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

"ಎಚ್ಚರಿಕೆಗಳನ್ನು ಎಲ್ಲಿಯೂ ಸಂಗ್ರಹಿಸಲಾಗಿಲ್ಲ; ಎಚ್ಚರಿಕೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮಾತ್ರ ಬಳಸಬಹುದು
ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ನಡೆದರೆ ಸೂಚನೆ"

ನೀನು ನನ್ನನ್ನು ತಮಾಷೆ ಮಾಡುತ್ತಿರಬೇಕು. ಇದನ್ನು ಕೆಲವು ರೀತಿಯ DBA ಶಿಕ್ಷೆಯಾಗಿ ಮಾಡಲಾಗುತ್ತದೆಯೇ? ಅಂದರೆ - ನಾವು
ಸಮಸ್ಯೆಗಳು ಏನೆಂದು ತಿಳಿಯಿರಿ, ಆದರೆ ನೀವು ಔಟ್‌ಪುಟ್ ಫೈಲ್ ಅನ್ನು ನಿರ್ಮಿಸಬೇಕು ಮತ್ತು ಅದರ ಮೂಲಕ ನೋಡಬೇಕು
ಅವುಗಳನ್ನು ಹುಡುಕಲು ನಿಮ್ಮ ಮಿಲಿಯನ್‌ಗಟ್ಟಲೆ ದಾಖಲೆಗಳು". MySQL ಇವುಗಳನ್ನು ಎರರ್‌ಲಾಗ್‌ನಲ್ಲಿ ಇರಿಸಲು ಬಳಸಲಿಲ್ಲ,
ಅವರು ಎಲ್ಲಿಗೆ ಸೇರಿದವರು? ಮುಂದುವರಿಯಿರಿ ಮತ್ತು ಅದನ್ನು ಆಯ್ಕೆ ಮಾಡಿ, ಆದರೆ ಇದನ್ನು ಮಾಡಲು ಸಾಕಷ್ಟು ತೊಂದರೆ ಇದೆ
ನಾನು ಒರಾಕಲ್‌ಗೆ ಹಿಂತಿರುಗುತ್ತೇನೆ (ಮತ್ತು ಅದು ಬಹಳಷ್ಟು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ).

ಶುಕ್ರವಾರ ಮೇ 17 2002, @6:24am ರಂದು ಕ್ಯಾಂಪ್ಬೆಲ್ ಮೂಲಕ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ಎರಡನೆಯದು ಅದು. (!) ನೀವು ಹೇಗೆ ಎಂದು ನನಗೆ ಅರ್ಥವಾಗುತ್ತಿಲ್ಲ
ಆ ವಾಕ್ಯವನ್ನು ನೇರ ಮುಖದಿಂದ ಬರೆಯಿರಿ.

ಶುಕ್ರವಾರ ಮೇ 17 2002, @6:24am ರಂದು Jonathon Padfield ರಿಂದ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ಅಲ್ಲದೆ, ಯಾವ ಸಾಲುಗಳನ್ನು ಸ್ಕಿಪ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ಯಾವುದೇ ಮಾಹಿತಿ ಇಲ್ಲ
ನೀಡಲಾಗುತ್ತದೆ.

ಶುಕ್ರವಾರ ಮೇ 17 2002 ರಂದು ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ, @6:24am[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ಸಲ್ಲಿಸುವಾಗ ಈ ವೈಶಿಷ್ಟ್ಯವು ತುಂಬಾ ಉಪಯುಕ್ತವಾಗಿದೆ
ವೆಬ್ ಪುಟದಿಂದ ಸೇರಿಸಿ. ಬಳಕೆದಾರರು ಹೊಡೆದರೆ
ರಿಫ್ರೆಶ್ ಮಾಡಿ, ಮತ್ತು ರಿಪೋಸ್ಟ್ ಫಾರ್ಮ್ ಡೇಟಾದ ಫಲಿತಾಂಶವು a
ಅದೇ ಪ್ರಾಥಮಿಕ ಕೀ ಡೇಟಾದ ನಂತರದ ಇನ್ಸರ್ಟ್,
ಬೂಮ್, ಅಪ್ಲಿಕೇಶನ್ ಒಡೆಯುತ್ತದೆ. ಈ ರೀತಿಯಲ್ಲಿ, ಬಳಕೆದಾರರು ಮಾಡಬಹುದು
ಅವರ ಮುಖವು ನೀಲಿ ಬಣ್ಣಕ್ಕೆ ತಿರುಗುವವರೆಗೆ F5 ಅನ್ನು ಹೊಡೆಯಿರಿ ಮತ್ತು ಅವರು
REPLACE ಹೇಳಿಕೆಯನ್ನು ಮುರಿಯುವುದಿಲ್ಲ.

[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ನಾನು c:\mysql\data ನಲ್ಲಿ MyDB ಫೋಲ್ಡರ್ ಅನ್ನು ಹೊಂದಿದ್ದೇನೆ
ನಾನು ಅಲ್ಲಿ Data.txt ಅನ್ನು ಇರಿಸುತ್ತೇನೆ ಮತ್ತು ನಾನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ
ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್ "Data.txt" ಅನ್ನು ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಿ
MyTable ಇದು ಹೇಳುತ್ತದೆ: ಕಮಾಂಡ್ ಯಶಸ್ವಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಂಡಿದೆ
ಆದರೆ MyTable ಗೆ ಯಾವುದೇ ಮೌಲ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿಲ್ಲ.
ನಾನು W2K ಅಡಿಯಲ್ಲಿ ಇದ್ದೇನೆ

ಶುಕ್ರವಾರ ಮೇ 17 2002, @6:24am ರಂದು ವ್ಯಾನ್ ಹೂಫ್ ಫಿಲಿಪ್ ಅವರಿಂದ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ನನ್ನ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಇನ್ನೊಂದರೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು ನಾನು ಬಯಸುತ್ತೇನೆ
ಕಾಲಕಾಲಕ್ಕೆ ಡೇಟಾಬೇಸ್. ಇದರರ್ಥ ಐ
REPLACE ವಿಷಯವನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ. ಆದರೆ ಏನು ಬಗ್ಗೆ
ಹೊಸದರಲ್ಲಿ ಇನ್ನು ಮುಂದೆ ಎಕ್ಸೈಸ್ಟ್ ಮಾಡದ ದಾಖಲೆಗಳು
ಡೇಟಾಬೇಸ್. ಅವುಗಳನ್ನು MySQL ಒಂದರಲ್ಲಿ ಅಳಿಸಲಾಗುತ್ತದೆಯೇ?
ಇವುಗಳನ್ನು ಸ್ವಯಂ ಅಳಿಸಲು ಮಾರ್ಗವಿದೆಯೇ? ಅಥವಾ ಆಗಿದೆ
ನನ್ನ MySQL ಟೇಬಲ್ ಅನ್ನು ಬಿಡಲು ಮತ್ತು ಮರುಸೃಷ್ಟಿಸಲು ಏಕೈಕ ಪರಿಹಾರ
ನಾನು ಅದನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು. ನಾನು crontab ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೇನೆ
ಈ ಕಾರ್ಯಾಚರಣೆಗಾಗಿ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಆದ್ದರಿಂದ ಯಾವುದೇ ಮಾನವ ಸಂವಹನವಿಲ್ಲ
ಈ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಮಯದಲ್ಲಿ ಸಾಧ್ಯ.

ಶುಕ್ರವಾರ ಮೇ 17 2002 ರಂದು ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ, @6:24am[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ದಸ್ತಾವೇಜನ್ನು ಏನು ಎಂಬುದರ ಬಗ್ಗೆ ಅಸ್ಪಷ್ಟವಾಗಿದೆ
ಈ ಪ್ರದೇಶದಲ್ಲಿ "ಅನನ್ಯ" ಕೀ/ಸೂಚ್ಯಂಕವನ್ನು ರೂಪಿಸುತ್ತದೆ. ಇದು
"ಇನ್ಸರ್ಟ್" ಗೆ ಬ್ಯಾಕ್ ರೆಫರೆನ್ಸ್, ಆದರೆ ಇನ್ಸರ್ಟ್ ಮಾಡುವುದಿಲ್ಲ
ಅಂತಹ ನಿರ್ಬಂಧವನ್ನು ಹೊಂದಿದೆ. ನಾನು ಅದನ್ನು ಪ್ರಾಥಮಿಕವಾಗಿ ಕಂಡುಕೊಂಡಿದ್ದೇನೆ
ಕೀಗಳು ಸಾಕಷ್ಟು ಅನನ್ಯವಾಗಿವೆ, ಆದರೆ ನಾನು ಸೇರಿಸಬೇಕಾಗಿತ್ತು
ಪ್ರೈಮರಿಗಳು ಅಲ್ಲಿ ನನಗೆ ಬೇಡವಾದವು. ಬಹುಶಃ ನಾನು
ಏನೋ ಕಾಣೆಯಾಗಿದೆ....

ಶುಕ್ರವಾರ ಮೇ 17 2002 ರಂದು ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ, @6:24am[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ಒಬ್ಬರು ಇರುವಾಗ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಪಡೆಯುವುದು ತುಂಬಾ ನಿರಾಶಾದಾಯಕವಾಗಿರುತ್ತದೆ
MySQL ಡೇಟಾಬೇಸ್‌ಗೆ ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಇರಬಾರದು
ಎಚ್ಚರಿಕೆಗಳ ಬಗ್ಗೆ ಯಾವುದೇ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.
MySQL ನಿಜವಾಗಿಯೂ ಒಂದು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ
ಕೇವಲ ಎಚ್ಚರಿಕೆಯ ಬಗ್ಗೆ ಏನೆಂದು ವರದಿ ಮಾಡಿ
ಎಚ್ಚರಿಕೆಯನ್ನು ವರದಿ ಮಾಡಿ. ತಾತ್ತ್ವಿಕವಾಗಿ ಬಗ್ಗೆ ಮಾಹಿತಿ
ಕೂಡಲೇ ಎಚ್ಚರಿಕೆ ನೀಡಬೇಕು. ನಲ್ಲಿ
ಕನಿಷ್ಠ ಕೆಲವು ರೀತಿಯ ದೋಷ-ಲಾಗ್ ಆಗಿರಬೇಕು
ಬಳಕೆದಾರರು ಪ್ರವೇಶಿಸಬಹುದಾದಂತೆ ರಚಿಸಲಾಗಿದೆ.

ಶುಕ್ರವಾರ ಮೇ 17 2002 ರಂದು ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ, @6:24am[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

"F5 ಅವರ ಮುಖ ನೀಲಿಯಾಗುವವರೆಗೆ" ವಿಷಯದ ಮೇಲೆ...

ಇದನ್ನು ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ನಿರ್ವಹಿಸಬೇಕು. ಇದು
"ನೀವು" ಎಂದು ಬಳಕೆದಾರರಿಗೆ ಹೇಳಲು ಖಂಡಿತವಾಗಿಯೂ ನೋಯಿಸುವುದಿಲ್ಲ
ಈಗಾಗಲೇ ಇದನ್ನು ನಮೂದಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ರಿಫ್ರೆಶ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ."

ವಾಸ್ತವವಾಗಿ, ಅತಿಸೂಕ್ಷ್ಮ ಅಂತ್ಯದ ಸಂಖ್ಯೆಯಿಂದಾಗಿ
ಅಲ್ಲಿಗೆ lusers, ಇದು ನಿರ್ದಿಷ್ಟವಾಗಿ ತೋರುತ್ತದೆ
ಒಳ್ಳೆಯ ಉಪಾಯ.

ಮಂಗಳವಾರ ಆಗಸ್ಟ್ 20 2002, @11:50am ರಂದು ಲ್ಯಾರಿ ಇರ್ವಿನ್ ಅವರಿಂದ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ಹೆಚ್ಚುವರಿ ಆಯ್ಕೆಯನ್ನು ಹೊಂದಲು ಇದು ತುಂಬಾ ಸಹಾಯಕವಾಗಿರುತ್ತದೆ
ಲೋಡಿಂಗ್ ಸಮಯದಲ್ಲಿ "ನಿರ್ಲಕ್ಷಿಸಿ ನಿರ್ಬಂಧಗಳನ್ನು" ಗೆ
ಪ್ರಕ್ರಿಯೆ.

ಗುರುವಾರ ಸೆಪ್ಟೆಂಬರ್ 5 2002 ರಂದು ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ, @1:34am[ಅಳಿಸಿ] [ಸಂಪಾದಿಸು]

ಖಾಲಿ MyISAM ಟೇಬಲ್‌ನಲ್ಲಿ "ಒಂದು ಕ್ಯಾಚ್ ಇದೆ, ಎಲ್ಲಾ
ವಿಶಿಷ್ಟವಲ್ಲದ ಸೂಚಿಕೆಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಬ್ಯಾಚ್‌ನಲ್ಲಿ ರಚಿಸಲಾಗಿದೆ"
ಏಕೆಂದರೆ ಬಳಸಿದ ಕಾರ್ಯವಿಧಾನವು "ದುರಸ್ತಿ" ಆಗಿದೆ
ಕೀಕ್ಯಾಶ್" ನೀವು ಅನೇಕವನ್ನು ಹೊಂದಿದ್ದರೆ ಅದು ತುಂಬಾ ನಿಧಾನವಾಗಿರುತ್ತದೆ
ಸೂಚ್ಯಂಕಗಳು. ಒಬ್ಬರು ನಿಜವಾಗಿಯೂ ಯಾಂತ್ರಿಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಬೇಕಾಗಿದೆ
ಕೀಗಳನ್ನು ರಚಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ ಮತ್ತು ನಂತರ ದುರಸ್ತಿ ಮಾಡಿ
myisamchk ನಲ್ಲಿ ವಿವರಿಸಿದಂತೆ "ರೀಪೇರಿ ಜೊತೆಗೆ" ಅನ್ನು ಬಳಸುತ್ತದೆ
ವಿಭಾಗ 5.2.9 (ಒಂದು ವೇಳೆ ನಿನ್ನಿಂದ ಸಾಧ್ಯಅದನ್ನು ಕೆಲಸ ಮಾಡಲು:-()

ಬುಧವಾರ ಅಕ್ಟೋಬರ್ 9 2002, @12:43pm ರಂದು ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ[

ಸಿಂಟ್ಯಾಕ್ಸ್ ಲೋಡ್ ಡೇಟಾ INFILE

ಡೇಟಾ ಇನ್‌ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ" ಕಡತದ ಹೆಸರು. txt" ಟೇಬಲ್‌ಗೆ ಟೇಬಲ್_ಹೆಸರು
["] ಮೂಲಕ ಮುಚ್ಚಲಾಗಿದೆ
]
]
[(ಕಾಲಮ್_ಹೆಸರು,...)]
ಲೋಡ್ ಡೇಟಾ INFILE ಹೇಳಿಕೆಯು ಪಠ್ಯ ಫೈಲ್‌ನಿಂದ ಸಾಲುಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಹೆಚ್ಚಿನ ವೇಗದಲ್ಲಿ ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡುತ್ತದೆ.
mysql ಆಮದು ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಡೇಟಾ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಬಹುದು. ಲೋಡ್ ಡೇಟಾ INFILE ಹೇಳಿಕೆಯನ್ನು ಸರ್ವರ್‌ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. --local ಆಯ್ಕೆಯು ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್‌ನಿಂದ ಡೇಟಾ ಫೈಲ್ ಅನ್ನು ಓದಲು mysqlimport ಉಪಯುಕ್ತತೆಯನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಸಂಕುಚಿತ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬೆಂಬಲಿಸಿದರೆ ನಿಧಾನ ನೆಟ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ನೀವು -compress ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು.
LOW_PRIORITY ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಎಲ್ಲಾ ಇತರ ಕ್ಲೈಂಟ್‌ಗಳು ಓದುವಿಕೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸುವವರೆಗೆ ಲೋಡ್ ಡೇಟಾ ಹೇಳಿಕೆಯ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯು ವಿಳಂಬವಾಗುತ್ತದೆ.
ಏಕಕಾಲೀನ ಇನ್ಸರ್ಟ್ ಸ್ಥಿತಿಯನ್ನು ಪೂರೈಸುವ MyISAM ಟೇಬಲ್‌ನೊಂದಿಗೆ CONCURRENT ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ (ಅಂದರೆ, ಫೈಲ್‌ನ ಮಧ್ಯದಲ್ಲಿ ಯಾವುದೇ ಉಚಿತ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ), ನಂತರ ಇತರ ಥ್ರೆಡ್‌ಗಳು ಲೋಡ್ ಆಗುವ ಅದೇ ಸಮಯದಲ್ಲಿ ಟೇಬಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಹಿಂಪಡೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ DATA ಅನ್ನು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ಟೇಬಲ್‌ನಲ್ಲಿ ಯಾವುದೇ ಥ್ರೆಡ್ ಚಾಲನೆಯಲ್ಲಿಲ್ಲದಿದ್ದರೂ ಸಹ, ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸುವುದರಿಂದ ಲೋಡ್ ಡೇಟಾದ ಮೇಲೆ ಸ್ವಲ್ಪ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.
LOCAL ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಅದು ಸಂಪರ್ಕದ ಕ್ಲೈಂಟ್ ಬದಿಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.

  1. LOCAL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಕ್ಲೈಂಟ್ ಪ್ರೋಗ್ರಾಂನಿಂದ ಫೈಲ್ ಅನ್ನು ಓದಲಾಗುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್‌ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
  2. LOCAL ಪದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್ ಸರ್ವರ್ ಹೋಸ್ಟ್‌ನಲ್ಲಿರಬೇಕು ಮತ್ತು ಅದನ್ನು ಸರ್ವರ್ ನೇರವಾಗಿ ಓದುತ್ತದೆ.

LOCAL MySQL 3.22.6 ಮತ್ತು ನಂತರದಲ್ಲಿ ಲಭ್ಯವಿದೆ.
ಭದ್ರತಾ ಕಾರಣಗಳಿಗಾಗಿ, ಸರ್ವರ್‌ನಲ್ಲಿರುವ ಪಠ್ಯ ಫೈಲ್‌ಗಳನ್ನು ಓದುವಾಗ, ಫೈಲ್‌ಗಳು ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ನೆಲೆಗೊಂಡಿರಬೇಕು ಅಥವಾ ಎಲ್ಲರೂ ಓದಬಹುದು. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸರ್ವರ್ ಫೈಲ್‌ಗಳೊಂದಿಗೆ ಲೋಡ್ ಡೇಟಾ ಬಳಸಲು, ನೀವು ಫೈಲ್ ಸವಲತ್ತು ಹೊಂದಿರಬೇಕು.
ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್‌ಗಳನ್ನು ನೇರವಾಗಿ ಪ್ರವೇಶಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ನೀವು ಸರ್ವರ್‌ಗೆ ನೀಡುವುದಕ್ಕಿಂತಲೂ LOCAL ಆಯ್ಕೆಯೊಂದಿಗೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದು ಸ್ವಲ್ಪ ನಿಧಾನವಾಗಿರುತ್ತದೆ, ಏಕೆಂದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಫೈಲ್‌ಗಳ ವಿಷಯಗಳನ್ನು ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಸಂಪರ್ಕದ ಮೂಲಕ ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಿಮಗೆ FILE ಸವಲತ್ತುಗಳ ಅಗತ್ಯವಿಲ್ಲ.
MySQL 3.23.49 ಮತ್ತು MySQL 4.0.2 (ವಿಂಡೋಸ್‌ನಲ್ಲಿ 4.0.13) ರಿಂದ, ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಎರಡೂ ಅನುಮತಿಸಿದರೆ ಮಾತ್ರ LOCAL ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, mysqld ಅನ್ನು -local-inf ile=0 ಆಯ್ಕೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿದರೆ, ನಂತರ LOCAL ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ.

ಲೋಡ್ ಡೇಟಾ ಬಳಸಿ ನೀವು ಪ್ರೋಗ್ರಾಂ ಪೈಪ್‌ನಿಂದ ಓದಬೇಕಾದರೆ, ನೀವು ಈ ಕೆಳಗಿನ ತಂತ್ರವನ್ನು ಬಳಸಬಹುದು:
mkfifo /mysql/db/x/x
chmod 666 /mysql/db/x/x
ಬೆಕ್ಕು< /dev/tcp/10.1.1.12/4711 >/mysql/db/x/x
mysql -e "ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್ "x1 ಇನ್‌ಟು ಟೇಬಲ್ x" x
ನೀವು 3.23.25 ಕ್ಕಿಂತ ಹಿಂದಿನ MySQL ಆವೃತ್ತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ, ಈ ತಂತ್ರವನ್ನು ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್‌ನೊಂದಿಗೆ ಮಾತ್ರ ಬಳಸಬಹುದು.
ನೀವು 3.23.24 ಕ್ಕಿಂತ ಹಿಂದಿನ MySQL ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದ್ದರೆ, ನೀವು LOAD DATA INFILE ಹೇಳಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು FIFO ನಿಂದ ಓದಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನೀವು FIFO ನಿಂದ ಓದಬೇಕಾದರೆ (ಉದಾ. ಗನ್‌ಜಿಪ್ ಔಟ್‌ಪುಟ್‌ನಿಂದ), ಬದಲಿಗೆ ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್ ಬಳಸಿ.
ಅದರ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಹುಡುಕುವಾಗ, ಸರ್ವರ್ ಈ ಕೆಳಗಿನ ನಿಯಮಗಳಿಂದ ಮಾರ್ಗದರ್ಶಿಸಲ್ಪಡುತ್ತದೆ:

  1. ಸಂಪೂರ್ಣ ಮಾರ್ಗವನ್ನು ನೀಡಿದರೆ, ಸರ್ವರ್ ಅದನ್ನು ಬಳಸುತ್ತದೆ.
  2. ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಪ್ರಮುಖ ಘಟಕಗಳೊಂದಿಗೆ ಸಂಬಂಧಿತ ಮಾರ್ಗವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಸರ್ವರ್ ಅದರ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಗೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಹುಡುಕುತ್ತದೆ.
  3. ಪ್ರಮುಖ ಮಾರ್ಗದ ಘಟಕಗಳಿಲ್ಲದ ಫೈಲ್ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಸರ್ವರ್ ಡೀಫಾಲ್ಟ್ ಡೇಟಾಬೇಸ್ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ.

./myfile.txt ಹೆಸರಿನ ಫೈಲ್ ಅನ್ನು ಸರ್ವರ್‌ನ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಿಂದ ಓದಲಾಗುತ್ತದೆ, ಆದರೆ myfile, txt ಹೆಸರಿನ ಫೈಲ್ ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಡೇಟಾಬೇಸ್ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಿಂದ ಓದಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಈ ನಿಯಮಗಳು ಸೂಚಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಉದಾಹರಣೆಗೆ, ಕೆಳಗಿನ ಲೋಡ್ ಡೇಟಾ INFILE ಹೇಳಿಕೆಯು dbl ನ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಿಂದ data.txt ಫೈಲ್ ಅನ್ನು ಓದುತ್ತದೆ ಏಕೆಂದರೆ dbl ಪ್ರಸ್ತುತ ಡೇಟಾಬೇಸ್ ಆಗಿದೆ, ಆದರೂ ಹೇಳಿಕೆಯು db2 ಗೆ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡುತ್ತಿದೆ:
mysql>ಬಳಕೆ dbl;
mysql> ಡೇಟಾ ಇನ್‌ಫೈಲ್ "data.txt" ಅನ್ನು ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಿ db2.my_table;
REPLACE ಮತ್ತು IGNORE ಕೀವರ್ಡ್‌ಗಳು ಮೌಲ್ಯದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅನನ್ಯ ಕೀಗಳನ್ನು ನಕಲು ಮಾಡುವ ಇನ್‌ಪುಟ್ ಸ್ಟ್ರಿಂಗ್‌ಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ.
REPLACE ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಇನ್‌ಪುಟ್ ಸಾಲುಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಾಲುಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತವೆ (ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಟೇಬಲ್‌ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಾಲುಗಳಂತೆಯೇ ಅದೇ ಪ್ರಾಥಮಿಕ ಅಥವಾ ಅನನ್ಯ ಕೀ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿರುವ ಸಾಲುಗಳು). REPLACE ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ನೋಡಿ
IGNORE ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಅದೇ ಪ್ರಾಥಮಿಕ ಅಥವಾ ವಿಶಿಷ್ಟವಾದ ಪ್ರಮುಖ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಾಲುಗಳ ನಕಲುಗಳ ಇನ್‌ಪುಟ್ ಸಾಲುಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ. ಯಾವುದೇ ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ನಡವಳಿಕೆಯು ಸ್ಥಳೀಯ ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆಯೇ ಎಂಬುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ. LOCAL ಇಲ್ಲದಿದ್ದರೆ, ನಕಲಿ ಕೀ ಪತ್ತೆಯಾದರೆ, ದೋಷವನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಉಳಿದ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. LOCAL ಇದ್ದರೆ, IGNORE ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದಂತೆ ಡೀಫಾಲ್ಟ್ ನಡವಳಿಕೆಯು ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಏಕೆಂದರೆ ಕಾರ್ಯಾಚರಣೆಯು ಪ್ರಗತಿಯಲ್ಲಿರುವಾಗ ಫೈಲ್ ವರ್ಗಾವಣೆಯನ್ನು ನಿಲ್ಲಿಸಲು ಸರ್ವರ್‌ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.
ಡೇಟಾ ಲೋಡ್ ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ವಿದೇಶಿ ಕೀ ನಿರ್ಬಂಧಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ನೀವು ಬಯಸಿದರೆ, ಲೋಡ್ ಡೇಟಾ ಚಾಲನೆ ಮಾಡುವ ಮೊದಲು ನೀವು SET FOREIGN_KEY_CHECKS=0 ಹೇಳಿಕೆಯನ್ನು ನೀಡಬಹುದು.
ನೀವು ಖಾಲಿ MyISAM ಟೇಬಲ್‌ನಲ್ಲಿ ಲೋಡ್ ಡೇಟಾವನ್ನು ರನ್ ಮಾಡಿದರೆ, ಎಲ್ಲಾ ಅನನ್ಯವಲ್ಲದ ಸೂಚಿಕೆಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಕೆಲಸದಲ್ಲಿ ರಚಿಸಲಾಗುತ್ತದೆ (ರಿಪೇರ್ ಟೇಬಲ್‌ನಂತೆ). ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಅನೇಕ ಸೂಚ್ಯಂಕಗಳಿರುವಾಗ ಲೋಡ್ ಡೇಟಾವು ಹೆಚ್ಚು ವೇಗವಾಗಿರುತ್ತದೆ. ವಿಶಿಷ್ಟವಾಗಿ ಇದು ಬಹಳ ಬೇಗನೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ಕೆಲವು ವಿಶೇಷ ಸಂದರ್ಭಗಳಲ್ಲಿ ನೀವು ಸೂಚ್ಯಂಕಗಳನ್ನು ALTER TABLE ಮೂಲಕ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ಇನ್ನಷ್ಟು ವೇಗವಾಗಿ ರಚಿಸಬಹುದು... ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ಕೀಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ

ಟೇಬಲ್‌ಗೆ ಫೈಲ್ ಮಾಡಿ, ಸೂಚಿಕೆಗಳನ್ನು ಮರುಸೃಷ್ಟಿಸಿ ಮತ್ತು ಆಲ್ಟರ್ ಟೇಬಲ್ ಬಳಸಿ ಅವುಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ... ಲೋಡಿಂಗ್ ಪೂರ್ಣಗೊಂಡ ನಂತರ ಕೀಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.
LOAD DATA INFILE ಎಂಬುದು SELECT... INTO OUTFILE ಗೆ ಸೇರ್ಪಡೆಯಾಗಿದೆ. ಆಯ್ಕೆಮಾಡಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ನೋಡಿ ಟೇಬಲ್‌ನಿಂದ ಫೈಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಬರೆಯಲು, SELECT... INTO OUTFILE ಅನ್ನು ಬಳಸಿ. ಫೈಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಮತ್ತೆ ಟೇಬಲ್‌ಗೆ ಓದಲು, ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್ ಬಳಸಿ. FIELDS ಮತ್ತು LINES ರಚನೆಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್ ಎರಡೂ ಹೇಳಿಕೆಗಳಿಗೆ ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಈ ಎರಡೂ ರಚನೆಗಳು ಐಚ್ಛಿಕವಾಗಿರುತ್ತವೆ, ಆದರೆ ಎರಡೂ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ ಕ್ಷೇತ್ರಗಳು LINES ಗೆ ಮುಂಚಿತವಾಗಿರಬೇಕು.
FIELDS ಕನ್‌ಸ್ಟ್ರಕ್ಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಅದರ ಎಲ್ಲಾ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು (ಟರ್ಮಿನೇಟ್ ಬೈ, ಎನ್‌ ಕ್ಲೋಸ್ಡ್ ಬೈ ಮತ್ತು ಎಸ್ಕೇಪ್ಡ್ ಬೈ) ಸಹ ಐಚ್ಛಿಕವಾಗಿರುತ್ತದೆ, ಕನಿಷ್ಠ ಒಂದು ಪ್ಯಾರಾಮೀಟರ್ ಇರಬೇಕಾದ ಅಗತ್ಯವನ್ನು ಹೊರತುಪಡಿಸಿ.
FIELDS ರಚನೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ಡೀಫಾಲ್ಟ್ ಆಗಿರುತ್ತದೆ:
"ಟಿಎಫ್‌ನಿಂದ ಮುಕ್ತಾಯಗೊಂಡ ಕ್ಷೇತ್ರಗಳು " ಎಸ್ಕೇಪ್ಡ್ ಬೈ " ಮೂಲಕ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ
LINES ರಚನೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ಡೀಫಾಲ್ಟ್ ಹೀಗಿರುತ್ತದೆ:
ಸಾಲುಗಳು "n ನಿಂದ ಕೊನೆಗೊಂಡಿವೆ! ಪ್ರಾರಂಭದಿಂದ "
ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಇನ್‌ಪುಟ್ ಅನ್ನು ಓದುವಾಗ ಲೋಡ್ ಡೇಟಾ INFILE ನ ಡೀಫಾಲ್ಟ್ ನಡವಳಿಕೆ:

  1. ಸಾಲುಗಳ ಆರಂಭದಲ್ಲಿ ಲೈನ್ ವಿಭಜಕಗಳನ್ನು ನೋಡಿ.
  2. ಯಾವುದೇ ಸಾಲಿನ ಪೂರ್ವಪ್ರತ್ಯಯಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಬೇಡಿ.
  3. ಟ್ಯಾಬ್ ಅಕ್ಷರಗಳ ಆಧಾರದ ಮೇಲೆ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಒಂದು ಸಾಲನ್ನು ಒಡೆಯಿರಿ.
  4. ಕ್ಷೇತ್ರಗಳನ್ನು ಉಲ್ಲೇಖಿಸಲು ನಿರೀಕ್ಷಿಸಬೇಡಿ.
  5. ಟ್ಯಾಬ್ ಅಕ್ಷರ, ಲೈನ್ ಫೀಡ್ ಅಥವಾ "\" ಅಕ್ಷರದ ಸಂಭವವನ್ನು \ ಮೊದಲು ಅಕ್ಷರಶಃ ಅಕ್ಷರಗಳಾಗಿ ಅರ್ಥೈಸಿ ಅದು ಕ್ಷೇತ್ರ ಮೌಲ್ಯದ ಭಾಗವಾಗಿದೆ.

ವ್ಯತಿರಿಕ್ತವಾಗಿ, ಆಯ್ಕೆ ಮಾಡಿ... INTO OUTFILE ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಈ ರೀತಿ ವರ್ತಿಸುತ್ತದೆ:

  1. ಕ್ಷೇತ್ರಗಳ ನಡುವೆ ಟ್ಯಾಬ್ ಅಕ್ಷರಗಳನ್ನು ಬರೆಯುತ್ತದೆ.
  2. ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳನ್ನು ಉಲ್ಲೇಖಗಳೊಂದಿಗೆ ಸುತ್ತುವರೆದಿಲ್ಲ.
  • ಟ್ಯಾಬ್‌ಗಳು, ಹೊಸ ಲೈನ್‌ಗಳು ಅಥವಾ "\ ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳಲ್ಲಿ ಸಂಭವಿಸುವ ಹೈಲೈಟ್ ಮಾಡಲು *" ಅನ್ನು ಬಳಸುತ್ತದೆ.
  • ಸಾಲುಗಳ ಕೊನೆಯಲ್ಲಿ ಹೊಸ ಸಾಲಿನ ಅಕ್ಷರವನ್ನು ಬರೆಯುತ್ತಾರೆ.
"W" ನಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಲಾದ ಫೀಲ್ಡ್‌ಗಳನ್ನು ಬರೆಯುವುದು ಒಂದು ಬ್ಯಾಕ್‌ಸ್ಲ್ಯಾಷ್ ಅನ್ನು ಓದಲು ಅಗತ್ಯವಿರುವ ಮೌಲ್ಯಗಳಿಗಾಗಿ ಎರಡು ಬ್ಯಾಕ್‌ಸ್ಲ್ಯಾಷ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಅಗತ್ಯವಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ.
ಒಂದು ಟಿಪ್ಪಣಿಯಲ್ಲಿ!
ನೀವು ವಿಂಡೋಸ್ ಸಿಸ್ಟಂನಲ್ಲಿ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿದರೆ, ಫೈಲ್ ಅನ್ನು ಸರಿಯಾಗಿ ಓದಲು ನೀವು "rn ಮೂಲಕ ಮುಕ್ತಾಯಗೊಳಿಸಲಾದ ಸಾಲುಗಳನ್ನು ಸೂಚಿಸಬೇಕಾಗಬಹುದು, ಏಕೆಂದರೆ ವಿಂಡೋಸ್ ಪ್ರೋಗ್ರಾಂಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಈ ಎರಡು ಅಕ್ಷರಗಳನ್ನು ಲೈನ್ ವಿಭಜಕವಾಗಿ ಬಳಸುತ್ತವೆ. ಕೆಲವು ಪ್ರೋಗ್ರಾಂಗಳು, WordPad ನಂತಹ ಅಕ್ಷರಗಳನ್ನು ಬಳಸಬಹುದು " r" ಅನ್ನು ಲೈನ್ ವಿಭಜಕವಾಗಿ. ಅಂತಹ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು, "r" ನಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳನ್ನು ಬಳಸಿ.
ನೀವು ಓದುತ್ತಿರುವ ಫೈಲ್‌ನ ಎಲ್ಲಾ ಸಾಲುಗಳು ನೀವು ನಿರ್ಲಕ್ಷಿಸಲು ಬಯಸುವ ಸಾಮಾನ್ಯ ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಹೊಂದಿದ್ದರೆ, "ರಿಂದ ಪ್ರಾರಂಭಿಸುವ ಸಾಲುಗಳನ್ನು ಬಳಸಿ ಸ್ಟ್ರಿಂಗ್_ಪೂರ್ವಪ್ರತ್ಯಯಗಳುಈ ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಬಿಟ್ಟುಬಿಡಲು. ಒಂದು ಸಾಲು ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಅದನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ.

ನಿರ್ಲಕ್ಷಿಸಿ ಆಯ್ಕೆ ಪ್ರಮಾಣಫೈಲ್‌ನ ಪ್ರಾರಂಭದಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಸಾಲುಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು LINES ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕಾಲಮ್ ಹೆಸರುಗಳನ್ನು ಹೊಂದಿರುವ ಆರಂಭಿಕ ಸಾಲನ್ನು ಬಿಟ್ಟುಬಿಡಲು ನೀವು IGNORE I LINES ಅನ್ನು ಬಳಸಬಹುದು:
mysql> ಲೋಡ್ ಡೇಟಾ INFILE "/tmp/test.txt" -> ಟೇಬಲ್ ಪರೀಕ್ಷೆಗೆ 1 ಸಾಲುಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ;
ಡೇಟಾಬೇಸ್‌ನಿಂದ ಫೈಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಬರೆಯಲು ಮತ್ತು ಅದನ್ನು ಓದಲು ಮತ್ತು ಅದನ್ನು ಮತ್ತೆ ಡೇಟಾಬೇಸ್‌ಗೆ ಲೋಡ್ ಮಾಡಲು ಲೋಡ್ ಡೇಟಾ INFILE ಜೊತೆಗೆ ನೀವು SELECT... INTO OUTFILE ಅನ್ನು ಬಳಸಿದಾಗ, ಎರಡೂ ಹೇಳಿಕೆಗಳಿಗೆ ಸಾಲು ಮತ್ತು ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ ಆಯ್ಕೆಗಳು ಒಂದೇ ಆಗಿರಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, ಲೋಡ್ ಡೇಟಾ INFILE ಗೆ ಪಠ್ಯ ಫೈಲ್‌ನ ವಿಷಯಗಳನ್ನು ಸರಿಯಾಗಿ ಅರ್ಥೈಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಪಠ್ಯ ಫೈಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡಲು, ಅಲ್ಪವಿರಾಮದಿಂದ ಕ್ಷೇತ್ರಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ನೀವು SELECT...INTO OUTFILE ಅನ್ನು ಬಳಸಿದ್ದೀರಿ ಎಂದು ಭಾವಿಸೋಣ:
mysql> ಆಯ್ಕೆ ಮಾಡಿ* ಔಟ್‌ಫೈಲ್ ಆಗಿ "data.txt" -> ಫೀಲ್ಡ್‌ಗಳನ್ನು ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ"," -> ಟೇಬಲ್ 2 ರಿಂದ;
ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಫೈಲ್ ಅನ್ನು ಮತ್ತೆ ಓದಲು, ಇದನ್ನು ಮಾಡಲು ಸರಿಯಾದ ಮಾರ್ಗವಾಗಿದೆ:
mysql> ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್ "data.txt1 ಅನ್ನು ಟೇಬಲ್ ಟೇಬಲ್ 2 ಗೆ -> ಫೀಲ್ಡ್‌ಗಳನ್ನು ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ
ಬದಲಿಗೆ ನೀವು ಕೆಳಗಿನ ಹೇಳಿಕೆಯೊಂದಿಗೆ ಅದನ್ನು ಓದಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಲೋಡ್ ಡೇಟಾ INFILE ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳ ನಡುವೆ ಟ್ಯಾಬ್ ಅಕ್ಷರಗಳನ್ನು ಹುಡುಕುತ್ತದೆ:
mysql> ಟೇಬಲ್ 2 ಗೆ ಡೇಟಾ ಇನ್‌ಫೈಲ್ "data.txt" ಅನ್ನು ಲೋಡ್ ಮಾಡಿ -> ಕ್ಷೇತ್ರಗಳು "t" ನಿಂದ ಕೊನೆಗೊಂಡಿವೆ;
ಇನ್‌ಪುಟ್ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಒಂದೇ ಕ್ಷೇತ್ರವಾಗಿ ಅರ್ಥೈಸುವುದು ಹೆಚ್ಚಿನ ಫಲಿತಾಂಶವಾಗಿದೆ.
ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಬಾಹ್ಯ ಮೂಲಗಳಿಂದ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ಸಹ ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಒಂದು ಫೈಲ್ ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಲಾದ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರಬಹುದು ಮತ್ತು ಡಬಲ್ ಕೋಟ್‌ಗಳಲ್ಲಿ ಸುತ್ತುವರಿದಿರಬಹುದು. ಫೈಲ್‌ನಲ್ಲಿನ ಸಾಲುಗಳನ್ನು ಹೊಸ ಸಾಲಿನ ಅಕ್ಷರದಿಂದ ಬೇರ್ಪಡಿಸಿದ್ದರೆ, ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಲು ಮತ್ತು ಕಾಲಮ್ ಡಿಲಿಮಿಟರ್ ಆಯ್ಕೆಗಳನ್ನು ಹೊಂದಿಸಬೇಕು ಎಂಬುದನ್ನು ಕೆಳಗಿನ ಉದಾಹರಣೆಯು ವಿವರಿಸುತ್ತದೆ:
mysql> ಡೇಟಾ ಇನ್‌ಫೈಲ್ "data.txt" ಅನ್ನು ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಿಟೇಬಲ್_ಹೆಸರು-> ಕ್ಷೇತ್ರಗಳನ್ನು 1,1 ರಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ "" -> ಸಾಲುಗಳಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ"ಎನ್";
ಸಾಲು ಮತ್ತು ಕಾಲಮ್ ಡಿಲಿಮಿಟರ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಯಾವುದೇ ಆಯ್ಕೆಗಳು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು (") ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಾಗಿ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿರದಿದ್ದರೆ, ನಂತರ ಫೀಲ್ಡ್‌ಗಳಿಂದ ಸುತ್ತುವರಿದ ಮತ್ತು ಎಸ್ಕೇಪ್ ಮಾಡಿದ ಕ್ಷೇತ್ರಗಳ ಮೌಲ್ಯಗಳು ಒಂದೇ ಆಗಿರಬೇಕು. ಕ್ಷೇತ್ರಗಳಿಗೆ ವಾದಗಳು ಆಯ್ಕೆಗಳನ್ನು ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ , ರಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಸಾಲುಗಳು ಮತ್ತು ಕೊನೆಗೊಳ್ಳುವ ಸಾಲುಗಳು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬಹುದು. ಉದಾಹರಣೆಗೆ, ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್‌ಗಳು/ಲೈನ್ ಫೀಡ್‌ಗಳಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾದ ಸಾಲುಗಳನ್ನು ಬರೆಯಲು ಅಥವಾ ಅಂತಹ ಸಾಲುಗಳನ್ನು ಹೊಂದಿರುವ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು, "rn" ನಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳನ್ನು ಸೂಚಿಸಿ.
%% ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುವ ಸಾಲುಗಳಿಂದ ಬೇರ್ಪಡಿಸಲಾದ ಫೈಲ್ ಅನ್ನು ಓದಲು, ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಮಾಡಬಹುದು:
mysql> ಟೇಬಲ್ ಜೋಕ್‌ಗಳನ್ನು ರಚಿಸಿ
-> (ಒಂದು INT ಶೂನ್ಯವಲ್ಲದ AUTO_INCREMENT ಪ್ರಾಥಮಿಕ ಕೀ, -> ಜೋಕ್ ಟೆಕ್ಸ್ಟ್ ಶೂನ್ಯವಲ್ಲ);

mysql> ಡೇಟಾ INFILE "/tmp/jokes,txf ಅನ್ನು ಟೇಬಲ್ ಜೋಕ್‌ಗಳಿಗೆ ಲೋಡ್ ಮಾಡಿ -> ಕ್ಷೇತ್ರಗಳನ್ನು "" -> "\n%%\n" ನಿಂದ ಕೊನೆಗೊಳಿಸಲಾದ ಸಾಲುಗಳಿಂದ ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ (ಹಾಸ್ಯ);
ಫೀಲ್ಡ್‌ಗಳನ್ನು ಕಂಟ್ರೋಲ್‌ಗಳ ಫೀಲ್ಡ್ ಡಿಲಿಮಿಟರ್‌ಗಳಿಂದ ಮುಚ್ಚಲಾಗಿದೆ (ಉಲ್ಲೇಖಗಳು). ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ (ಆಯ್ಕೆ ಮಾಡಿ... ಔಟ್‌ಫೈಲ್‌ಗೆ), ನೀವು ಐಚ್ಛಿಕವಾಗಿ ಪದವನ್ನು ಬಿಟ್ಟುಬಿಟ್ಟರೆ, ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳು ENCLOSED BY ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಕ್ಷರದಿಂದ ಸುತ್ತುವರೆದಿರುತ್ತವೆ. ಅಂತಹ ಔಟ್‌ಪುಟ್‌ನ ಉದಾಹರಣೆ (ಅಲ್ಪವಿರಾಮವನ್ನು ಕ್ಷೇತ್ರ ವಿಭಜಕವಾಗಿ ಬಳಸುವುದು) ಕೆಳಗೆ ತೋರಿಸಲಾಗಿದೆ:
"1","ಎ ಸ್ಟ್ರಿಂಗ್","100.20"
"2","ಒಂದು ಸ್ಟ್ರಿಂಗ್ , ಅಲ್ಪವಿರಾಮ","102.20"
"3","\" ಉಲ್ಲೇಖವನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್,"102.20"
"4","\", ಉಲ್ಲೇಖ ಮತ್ತು ಅಲ್ಪವಿರಾಮವನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್","102.20"
ನೀವು ಐಚ್ಛಿಕವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ENCLOSEDY ಅಕ್ಷರವನ್ನು CHAR ಮತ್ತು VARCHAR ಕ್ಷೇತ್ರಗಳನ್ನು ಉಲ್ಲೇಖಿಸಲು ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ:
1,"ಒಂದು ಸ್ಟ್ರಿಂಗ್",100.20
3,"\" ಉಲ್ಲೇಖವನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್",102.20
4,"\", ಉಲ್ಲೇಖ ಮತ್ತು ಅಲ್ಪವಿರಾಮವನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್",102.20
ಕ್ಷೇತ್ರ ಮೌಲ್ಯದೊಳಗೆ ENCLOSEDBY ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಕ್ಷರದ ಘಟನೆಗಳು ESCAPED BY ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಕ್ಷರದಿಂದ ಮುಂಚಿತವಾಗಿರುತ್ತವೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ನೀವು ESCAPED BY ಗಾಗಿ ಖಾಲಿ ಮೌಲ್ಯವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಸರಿಯಾಗಿ ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವ ಸಾಧ್ಯತೆಯಿದೆ.
ಉದಾಹರಣೆಗೆ, ರದ್ದು ಅಕ್ಷರವನ್ನು ಖಾಲಿ ಬಿಟ್ಟರೆ, ಮೇಲಿನ ಔಟ್‌ಪುಟ್ ಕೆಳಗಿನಂತೆ ಕಾಣುತ್ತದೆ. ನಾಲ್ಕನೇ ಸಾಲಿನಲ್ಲಿನ ಎರಡನೇ ಕ್ಷೇತ್ರವು ಉಲ್ಲೇಖದ ನಂತರ ಅಲ್ಪವಿರಾಮವನ್ನು ಹೊಂದಿದೆ ಎಂದು ನೋಡುವುದು ಸುಲಭ, ಅದು (ತಪ್ಪಾಗಿ) ಕ್ಷೇತ್ರ ವಿಭಜಕವಾಗಿ ಗೋಚರಿಸುತ್ತದೆ.
1,"ಒಂದು ಸ್ಟ್ರಿಂಗ್",100.20
2,"ಒಂದು ಸ್ಟ್ರಿಂಗ್, ಅಲ್ಪವಿರಾಮ",102.20
3,"ಒಂದು "ಉಲ್ಲೇಖ" ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್,102.20
4,"", ಕೋಟ್ ಮತ್ತು ಅಲ್ಪವಿರಾಮವನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್",102.20
ನೀವು ಟೈಪ್ ಮಾಡಿದಂತೆ, ENCLOSEDY ಚಿಹ್ನೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳ ಅಂತ್ಯದಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. (ಐಚ್ಛಿಕವಾಗಿ ಪದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೂ ಇಲ್ಲದಿದ್ದರೂ ಇದು ನಿಜ. ಇನ್‌ಪುಟ್ ಅನ್ನು ಅರ್ಥೈಸುವಾಗ ಈ ಪದವು ಯಾವುದೇ ಪರಿಣಾಮವನ್ನು ಬೀರುವುದಿಲ್ಲ.) ಎಸ್ಕೇಪ್ಡ್ ಬೈ ಕ್ಯಾರೆಕ್ಟರ್‌ನಿಂದ ಮುಂಚಿತವಾಗಿ ಎನ್‌ಕ್ಲೋಸ್ಡ್ ಬೈ ಅಕ್ಷರಗಳ ಸಂಭವವನ್ನು ಪ್ರಸ್ತುತ ಕ್ಷೇತ್ರದ ಮೌಲ್ಯದ ಭಾಗವಾಗಿ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ.
ಒಂದು ಕ್ಷೇತ್ರವು ಎನ್‌ಲೋಸ್ಡ್ ಬೈ ಕ್ಯಾರೆಕ್ಟರ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾದರೆ, ಆ ಅಕ್ಷರದ ನಿದರ್ಶನಗಳನ್ನು ಕ್ಷೇತ್ರ ಅಥವಾ ಅನುಕ್ರಮದಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಿದರೆ ಮಾತ್ರ ಕ್ಷೇತ್ರದ ಮೌಲ್ಯವನ್ನು ಕೊನೆಗೊಳಿಸಲಾಗುತ್ತದೆ ಎಂದು ಅರ್ಥೈಸಲಾಗುತ್ತದೆ. ಅಕ್ಷರದ ಮೂಲಕ ENCLOSED ಅನ್ನು ಕ್ಷೇತ್ರ ಮೌಲ್ಯದಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಾಗ ಅಸ್ಪಷ್ಟತೆಯನ್ನು ತಪ್ಪಿಸಲು, ಅಕ್ಷರವನ್ನು ನಕಲು ಮಾಡಬಹುದು ಮತ್ತು ಪಾತ್ರದ ಏಕೈಕ ನಿದರ್ಶನವಾಗಿ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, "" ನಿಂದ ENCLOSED ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಉಲ್ಲೇಖಗಳನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ:
""ಬಿಗ್" ಬಾಸ್" -> "ಬಿಗ್" ಬಾಸ್ ದಿ "ಬಿಗ್" ಬಾಸ್ -> "ಬಿಗ್" ಬಾಸ್ ""ಬಿಗ್"" ಬಾಸ್ -> ""ಬಿಗ್"" ಬಾಸ್
ವಿಶೇಷ ಅಕ್ಷರಗಳ ಓದುವಿಕೆ ಅಥವಾ ಬರೆಯುವಿಕೆಯನ್ನು ನಿಯಂತ್ರಿಸುವ ಮೂಲಕ ಎಸ್ಕೇಪ್ಡ್ ಫೀಲ್ಡ್ಸ್. ಆರ್ಗ್ಯುಮೆಂಟ್‌ನಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಿದ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಈ ಕೆಳಗಿನ ಅಕ್ಷರಗಳಿಗೆ ಪೂರ್ವಪ್ರತ್ಯಯವಾಗಿ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ:

  1. ಚಿಹ್ನೆಯಿಂದ ಜಾಗ ತಪ್ಪಿಸಲಾಗಿದೆ.
  2. ಫೀಲ್ಡ್‌ಗಳನ್ನು ಚಿಹ್ನೆಯಿಂದ ಮುಚ್ಚಲಾಗಿದೆ.
  3. ಸೀಕ್ವೆನ್ಸ್‌ಗಳ ಮೊದಲ ಅಕ್ಷರವು FIELDS ನಿಂದ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಸಾಲುಗಳಿಂದ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.
  4. ASCII 0 (ಇದು ರದ್ದು ಅಕ್ಷರದ ನಂತರ ಶೂನ್ಯ ಬೈಟ್‌ಗಿಂತ ಹೆಚ್ಚಾಗಿ ASCII "0" ಎಂದು ಬರೆಯಲಾಗಿದೆ).

ಅಕ್ಷರದಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಿದ FIELDS ಖಾಲಿಯಾಗಿದ್ದರೆ, ಯಾವುದೇ ಅಕ್ಷರಗಳು ಎಸ್ಕೇಪ್ ಅಕ್ಷರಗಳಿಂದ ಮುಂಚಿತವಾಗಿರುವುದಿಲ್ಲ ಮತ್ತು NULL ಅನ್ನು \N ಗಿಂತ NULL ಎಂದು ಔಟ್‌ಪುಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ಆರ್ಗ್ಯುಮೆಂಟ್‌ನಿಂದ ಎಸ್ಕೇಪ್ ಆದ ಕ್ಷೇತ್ರಗಳನ್ನು ಖಾಲಿ ಬಿಡುವುದು ಬಹುಶಃ ಒಳ್ಳೆಯದಲ್ಲ, ವಿಶೇಷವಾಗಿ ನಿಮ್ಮ ಡೇಟಾ ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳು ಉಲ್ಲೇಖಿಸಲಾದ ಯಾವುದೇ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿದ್ದರೆ.
ನಮೂದಿಸುವಾಗ, FIELDS ESCAPED BY ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, ಈ ಅಕ್ಷರವು ಮೌಲ್ಯದ ಸಾಲಿನಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಾಗ, ಅದನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಕೆಳಗಿನ ಅಕ್ಷರವನ್ನು ಕ್ಷೇತ್ರ ಮೌಲ್ಯದ ಭಾಗವಾಗಿ ಅಕ್ಷರಶಃ ಓದಲಾಗುತ್ತದೆ. ವಿನಾಯಿತಿಗಳೆಂದರೆ "0" ಅಥವಾ "N" ಅನುಕ್ರಮಗಳು (SYS-PAGE-CONTENT ಅಥವಾ \N ಎಸ್ಕೇಪ್ ಅಕ್ಷರ "\" ಆಗಿದ್ದರೆ). ಈ ಅನುಕ್ರಮಗಳನ್ನು ಕ್ರಮವಾಗಿ ASCII NUL (ಶೂನ್ಯ ಬೈಟ್) ಮತ್ತು NULL ಎಂದು ಅರ್ಥೈಸಲಾಗುತ್ತದೆ. NULL ಅನ್ನು ನಿರ್ವಹಿಸುವ ನಿಯಮಗಳನ್ನು ಈ ವಿಭಾಗದಲ್ಲಿ ನಂತರ ವಿವರಿಸಲಾಗಿದೆ.
"\" ರದ್ದತಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ವಿಭಾಗದಲ್ಲಿ ಲಿಟರಲ್ ಮೌಲ್ಯಗಳನ್ನು ಕಾಣಬಹುದು
ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ಸಾಲುಗಳನ್ನು ನಿಯಂತ್ರಿಸುವ ಆಯ್ಕೆಗಳು ಪರಸ್ಪರ ಸಂವಹನ ನಡೆಸುತ್ತವೆ:

  1. ಒಂದು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು LINES ಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ ಮತ್ತು ಕೊನೆಗೊಂಡ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, LINES TERMINATED BY ಲೈನ್ ವಿಭಜಕವೂ ಆಗಿದೆ.
  2. ಎರಡೂ ಕ್ಷೇತ್ರಗಳಿಂದ ಮುಕ್ತಾಯಗೊಂಡ ಮತ್ತು ಮುಚ್ಚಿದ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿದ್ದರೆ, ಸ್ಥಿರ ಸ್ಟ್ರಿಂಗ್ ಸ್ವರೂಪವನ್ನು (ಯಾವುದೇ ಡಿಲಿಮಿಟರ್‌ಗಳಿಲ್ಲ) ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಸ್ವರೂಪವು ಕ್ಷೇತ್ರಗಳ ನಡುವೆ ಯಾವುದೇ ವಿಭಜಕಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲ (ಆದರೆ ಲೈನ್ ವಿಭಜಕವನ್ನು ಹೊಂದಬಹುದು). ಬದಲಾಗಿ, ಕಾಲಮ್ ಡಿಸ್ಪ್ಲೇ ಅಗಲವನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಲಮ್ ಮೌಲ್ಯಗಳನ್ನು ಬರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಓದಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಕಾಲಮ್ ಅನ್ನು INT (7) ಎಂದು ಘೋಷಿಸಿದರೆ, ಕಾಲಮ್ ಮೌಲ್ಯಗಳನ್ನು ಏಳು ಅಕ್ಷರಗಳ ಕ್ಷೇತ್ರಕ್ಕೆ ಬರೆಯಲಾಗುತ್ತದೆ. ನಮೂದಿಸಿದಾಗ, ಏಳು ಅಕ್ಷರಗಳನ್ನು ಓದುವ ಮೂಲಕ ಕಾಲಮ್ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂಪಡೆಯಲಾಗುತ್ತದೆ.

ಸಾಲುಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು LINES TERMINATED BY ಅನ್ನು ಇನ್ನೂ ಬಳಸಲಾಗುತ್ತದೆ. ಸಾಲು ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಉಳಿದ ಕಾಲಮ್‌ಗಳಿಗೆ ಅವುಗಳ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳನ್ನು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ. ನೀವು ಲೈನ್ ಟರ್ಮಿನೇಟರ್ ಅನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಅದರ ಮೌಲ್ಯವನ್ನು 1" ಗೆ ಹೊಂದಿಸಬೇಕು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಪಠ್ಯ ಫೈಲ್ ಪ್ರತಿ ಸಾಲಿನಲ್ಲಿರುವ ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. ಸ್ಥಿರ-ಸಾಲಿನ-ಉದ್ದದ ಸ್ವರೂಪವು ವಿವರಿಸಿದಂತೆ NULL ಮೌಲ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವುದರೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತದೆ. ಕೆಳಗೆ, ಮಲ್ಟಿಬೈಟ್ ಅಕ್ಷರ ಸೆಟ್ ಅನ್ನು ಬಳಸಿದರೆ ಸ್ಥಿರ-ಉದ್ದದ ಫಾರ್ಮ್ಯಾಟ್ ಉದ್ದವು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಎಂದು ಗಮನಿಸಬೇಕು (ಉದಾಹರಣೆಗೆ, ಯುನಿಕೋಡ್).
NULL ಮೌಲ್ಯಗಳ ನಿರ್ವಹಣೆಯು ಬಳಸಿದ FIELDS ಮತ್ತು LINES ಆಯ್ಕೆಗಳನ್ನು ಅವಲಂಬಿಸಿ ಬದಲಾಗುತ್ತದೆ:

  1. ಡೀಫಾಲ್ಟ್ FIELDS ಮತ್ತು LINES ಮೌಲ್ಯಗಳೊಂದಿಗೆ, NULL ಅನ್ನು ಔಟ್‌ಪುಟ್‌ಗಾಗಿ \N ಕ್ಷೇತ್ರ ಮೌಲ್ಯವಾಗಿ ಬರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಅದೇ \N ಮೌಲ್ಯವನ್ನು ಇನ್‌ಪುಟ್‌ಗಾಗಿ NULL ಎಂದು ಓದಲಾಗುತ್ತದೆ (ESCAPED BY ಅಕ್ಷರವನ್ನು "\" ಎಂದು ಹೊಂದಿಸಲಾಗಿದೆ)-
  2. FIELDS ENCLOSED BY ಖಾಲಿಯಾಗಿಲ್ಲದಿದ್ದರೆ, NULL ಅಕ್ಷರಶಃ ಪದವನ್ನು ಹೊಂದಿರುವ ಕ್ಷೇತ್ರವನ್ನು NULL ಎಂದು ಓದಲಾಗುತ್ತದೆ. NULL ಎಂಬ ಪದವನ್ನು ಅಕ್ಷರಗಳಿಂದ FIELDS ಎನ್‌ಲೋಸ್ಡ್ ಮಾಡಿದಾಗ, ಮೌಲ್ಯವನ್ನು "NULL" ಸ್ಟ್ರಿಂಗ್‌ನಂತೆ ಓದಿದಾಗ ಇದು ವಿಭಿನ್ನವಾಗಿದೆ.
  3. FIELDS ESCAPED BY ಖಾಲಿಯಾಗಿದ್ದರೆ, NULL ಅನ್ನು NULL ಎಂಬ ಪದವಾಗಿ ಬರೆಯಲಾಗುತ್ತದೆ.
  • ಸ್ಥಿರ ಸ್ಟ್ರಿಂಗ್ ಉದ್ದದ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ (ಎರಡೂ ಕ್ಷೇತ್ರಗಳನ್ನು ಮುಕ್ತಾಯಗೊಳಿಸಿದಾಗ ಮತ್ತು ಮುಚ್ಚಲಾದ ಕ್ಷೇತ್ರಗಳು ಖಾಲಿಯಾಗಿರುವಾಗ ಸಂಭವಿಸುತ್ತದೆ), NULL ಅನ್ನು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಎಂದು ಬರೆಯಲಾಗುತ್ತದೆ. ಇದು ಫೈಲ್‌ಗೆ ಬರೆಯುವಾಗ ಟೇಬಲ್‌ನಲ್ಲಿನ NULL ಮೌಲ್ಯಗಳು ಮತ್ತು ಖಾಲಿ ಸಾಲುಗಳನ್ನು ಅಸ್ಪಷ್ಟವಾಗಿರುವಂತೆ ಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ ಎರಡೂ ಖಾಲಿ ಸಾಲುಗಳನ್ನು ಬರೆಯುತ್ತವೆ. ನೀವು ಅವುಗಳ ನಡುವೆ ವ್ಯತ್ಯಾಸವನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಾದರೆ, ಸ್ಥಿರ-ರೇಖೆಯ-ಉದ್ದದ ಸ್ವರೂಪವನ್ನು ಬಳಸುವುದನ್ನು ತಪ್ಪಿಸಿ.
    ಲೋಡ್ ಡೇಟಾ ಇನ್‌ಫೈಲ್‌ನಿಂದ ಬೆಂಬಲಿಸದ ಕೆಲವು ಪ್ರಕರಣಗಳು ಕೆಳಗಿವೆ:
    1. ಟೆಕ್ಸ್ಟ್ ಅಥವಾ ಬ್ಲಾಬ್ ಕಾಲಮ್‌ಗಳ ಉಪಸ್ಥಿತಿಯಲ್ಲಿ ಸ್ಥಿರ ಉದ್ದದ ಸಾಲುಗಳು (ಫೀಲ್ಡ್‌ಗಳನ್ನು ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಎನ್‌ಸೈಟಿಯಿಂದ ಮುಚ್ಚಿದ ಕ್ಷೇತ್ರಗಳು).
    2. ನೀವು ಬೇರೊಂದರ ಪೂರ್ವಪ್ರತ್ಯಯದಂತೆಯೇ ಇರುವ ಡಿಲಿಮಿಟರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಲೋಡ್ ಡೇಟಾ INFILE ಇನ್‌ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಸರಿಯಾಗಿ ಅರ್ಥೈಸದೇ ಇರಬಹುದು. ಉದಾಹರಣೆಗೆ, ಕೆಳಗಿನ ಆಯ್ಕೆಯು ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ:

    "" ನಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಿದ ಕ್ಷೇತ್ರಗಳು "" ನಿಂದ ಮುಕ್ತಾಯಗೊಂಡಿದೆ

    • FIELDS ESCAPED BY ಖಾಲಿಯಾಗಿದ್ದರೆ, ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳು FIELDS ನಿಂದ ಮುಚ್ಚಿದ ಅಥವಾ ರೇಖೆಗಳಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳು ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಫೈಲ್ ಅಥವಾ ಸಾಲನ್ನು ಬೇಗನೆ ಓದುವುದನ್ನು ನಿಲ್ಲಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ. ಇದು ಸಂಭವಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಲೋಡ್ ಡೇಟಾ INFILE ಕ್ಷೇತ್ರ ಅಥವಾ ಸಾಲು ಮೌಲ್ಯವು ಎಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ಸರಿಯಾಗಿ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಕೆಳಗಿನ ಉದಾಹರಣೆಯು ವೈಯಕ್ತಿಕ ಡೇಟಾ ಟೇಬಲ್‌ನ ಎಲ್ಲಾ ಕಾಲಮ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ: mysql> ಡೇಟಾ ಇನ್‌ಫೈಲ್ "persondata.txt" ಅನ್ನು ಟೇಬಲ್ ವೈಯಕ್ತಿಕ ಡೇಟಾಗೆ ಲೋಡ್ ಮಾಡಿ;
      ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಲೋಡ್ ಡೇಟಾ INFILE ಹೇಳಿಕೆಯ ಕೊನೆಯಲ್ಲಿ ಕಾಲಮ್ ಪಟ್ಟಿಯನ್ನು ಒದಗಿಸದ ಹೊರತು, ಇನ್‌ಪುಟ್ ಸಾಲು ಕೋಷ್ಟಕದಲ್ಲಿನ ಪ್ರತಿ ಕಾಲಮ್‌ಗೆ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ. ನೀವು ಕೆಲವು ಟೇಬಲ್ ಕಾಲಮ್‌ಗಳನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡಲು ಬಯಸಿದರೆ, ಕಾಲಮ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ:
      mysql> ಡೇಟಾ ಇನ್‌ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ "persondata.txt1
      -> ಟೇಬಲ್ ವೈಯಕ್ತಿಕ ಡೇಟಾ(coll,col2,...);
      ಇನ್‌ಪುಟ್ ಫೈಲ್‌ನಲ್ಲಿನ ಕ್ಷೇತ್ರಗಳ ಕ್ರಮವು ಕೋಷ್ಟಕದಲ್ಲಿನ ಕಾಲಮ್‌ಗಳ ಕ್ರಮಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿದ್ದರೆ ನೀವು ಕಾಲಮ್ ಪಟ್ಟಿಯನ್ನು ಸಹ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, MySQL ಇನ್‌ಪುಟ್ ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ಟೇಬಲ್ ಕಾಲಮ್‌ಗಳ ನಡುವೆ ಮ್ಯಾಪಿಂಗ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.
      ಇನ್‌ಪುಟ್ ಫೈಲ್ ಸಾಲುಗಳಲ್ಲಿ ತುಂಬಾ ಕಡಿಮೆ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ನಂತರ ಕಾಣೆಯಾದ ಕಾಲಮ್‌ಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳನ್ನು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ. ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳನ್ನು ನಿಯೋಜಿಸುವುದನ್ನು ಕ್ರಿಯೇಟ್ ಟೇಬಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್‌ನಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ
      ಖಾಲಿ ಕ್ಷೇತ್ರ ಮೌಲ್ಯಗಳನ್ನು ಕಾಣೆಯಾದ ಕ್ಷೇತ್ರಗಳಿಗಿಂತ ವಿಭಿನ್ನವಾಗಿ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ:
      1. ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕಾರಗಳಿಗೆ, ಕಾಲಮ್ ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ.
      2. ಸಂಖ್ಯಾ ಪ್ರಕಾರಗಳಿಗೆ, ಕಾಲಮ್ ಅನ್ನು 0 ನಿಗದಿಪಡಿಸಲಾಗಿದೆ.
      3. ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಪ್ರಕಾರಗಳಿಗಾಗಿ - ಕಾಲಮ್ ಅನ್ನು ಅನುಗುಣವಾದ ಪ್ರಕಾರಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ
        "ಶೂನ್ಯ" ಮೌಲ್ಯ. ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಪ್ರಕಾರಗಳನ್ನು ನೋಡಿ

      INSERT ಅಥವಾ UPDATE ಹೇಳಿಕೆಯಲ್ಲಿ ಈ ಪ್ರಕಾರಗಳ ಕಾಲಮ್‌ಗಳಿಗೆ ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿಯೋಜಿಸುವುದರಿಂದ ಉಂಟಾಗುವ ಅದೇ ಮೌಲ್ಯಗಳು ಇವುಗಳಾಗಿವೆ.
      TIMESTAMP ಕಾಲಮ್ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರಸ್ತುತ ದಿನಾಂಕ ಮತ್ತು ಸಮಯಕ್ಕೆ ಹೊಂದಿಸಿದರೆ ಮಾತ್ರ ಅವುಗಳನ್ನು NULL ಗೆ ಹೊಂದಿಸಿದರೆ (ಅಂದರೆ \N), ಅಥವಾ ಕ್ಷೇತ್ರ ಪಟ್ಟಿಯನ್ನು ಒದಗಿಸಿದರೆ ಆ ಪ್ರಕಾರದ ಕಾಲಮ್ ಅನ್ನು ಕ್ಷೇತ್ರ ಪಟ್ಟಿಯಿಂದ ಕೈಬಿಟ್ಟರೆ.

      ಲೋಡ್ ಡೇಟಾ INFILE ಎಲ್ಲಾ ಇನ್‌ಪುಟ್ ಅನ್ನು ಸ್ಟ್ರಿಂಗ್ ಇನ್‌ಪುಟ್‌ನಂತೆ ಪರಿಗಣಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು INSERT ಹೇಳಿಕೆಗಳಲ್ಲಿ ಅನುಮತಿಸಿದಂತೆ ENUM ಅಥವಾ SET ಕಾಲಮ್‌ಗಳಿಗೆ ಸಂಖ್ಯಾ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಎಲ್ಲಾ ENUM ಅಥವಾ SET ಮೌಲ್ಯಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು!
      ಲೋಡ್ ಡೇಟಾ INFILE ಹೇಳಿಕೆಯು ಪೂರ್ಣಗೊಂಡಾಗ, ಅದು ಈ ಕೆಳಗಿನ ಸ್ವರೂಪದಲ್ಲಿ ಮಾಹಿತಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ:
      ದಾಖಲೆಗಳು: ನಾನು ಅಳಿಸಿದ್ದೇನೆ: 0 ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ: 0 ಎಚ್ಚರಿಕೆಗಳು: ಕುರಿತು
      ನೀವು C API ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ, mysql_info() ಕಾರ್ಯಕ್ಕೆ ಕರೆ ಮಾಡುವ ಮೂಲಕ ನೀವು ಈ ಹೇಳಿಕೆಯ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಬಹುದು.
      ಕೆಲವು ಷರತ್ತುಗಳ ಅಡಿಯಲ್ಲಿ ಗೋಚರಿಸುವ ಎಚ್ಚರಿಕೆಗಳು INSERT ಹೇಳಿಕೆಯೊಂದಿಗೆ ಮೌಲ್ಯಗಳನ್ನು ಸೇರಿಸುವಾಗ ಸಂಭವಿಸುವಂತೆಯೇ ಇರುತ್ತವೆ (ವಿಭಾಗ 6.1.4 ನೋಡಿ), ಲೋಡ್ ಡೇಟಾ INFILE ತುಂಬಾ ಕಡಿಮೆ ಅಥವಾ ಹೆಚ್ಚಿನ ಕ್ಷೇತ್ರಗಳಿವೆ ಎಂಬ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸಹ ಉತ್ಪಾದಿಸುತ್ತದೆ. ಎಚ್ಚರಿಕೆಗಳನ್ನು ಎಲ್ಲಿಯೂ ಸಂಗ್ರಹಿಸಲಾಗಿಲ್ಲ, ಎಚ್ಚರಿಕೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಎಲ್ಲವೂ ಸರಿಯಾಗಿವೆ ಎಂಬ ಸಂಕೇತವಾಗಿ ಮಾತ್ರ ಬಳಸಬಹುದು.
      MySQL 4.1.1 ರಿಂದ, ಮೊದಲ max_error_count ಎಚ್ಚರಿಕೆಗಳನ್ನು ಮಾಹಿತಿಯಾಗಿ ಪಟ್ಟಿ ಮಾಡಲು ನೀವು SHOW ಎಚ್ಚರಿಕೆಗಳನ್ನು ಬಳಸಬಹುದು ಏನುಲೋಡ್ ಮಾಡುವುದು ತಪ್ಪಾಗಿದೆ. ಪ್ರದರ್ಶನ ಎಚ್ಚರಿಕೆಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ನೋಡಿ
      MySQL 4.1.1 ಮೊದಲು, ಕೇವಲ ಎಚ್ಚರಿಕೆಗಳ ಸಂಖ್ಯೆಯು ಲೋಡ್ ಸರಾಗವಾಗಿ ಹೋಗುತ್ತಿಲ್ಲ ಎಂಬ ಸೂಚನೆಯಾಗಿತ್ತು. ನೀವು ಎಚ್ಚರಿಕೆಯನ್ನು ಸ್ವೀಕರಿಸಿದರೆ ಮತ್ತು ಅದು ಏಕೆ ಕಾಣಿಸಿಕೊಂಡಿದೆ ಎಂದು ನಿಖರವಾಗಿ ತಿಳಿಯಲು ಬಯಸಿದರೆ, ಟೇಬಲ್ ಅನ್ನು ಮತ್ತೊಂದು ಫೈಲ್‌ಗೆ ಡಂಪ್ ಮಾಡಲು ಮತ್ತು ಅದನ್ನು ಮೂಲ ಇನ್‌ಪುಟ್ ಫೈಲ್‌ನೊಂದಿಗೆ ಹೋಲಿಸಲು SELECT...INTO OUTFILE ಅನ್ನು ಬಳಸುವುದು ಒಂದೇ ಮಾರ್ಗವಾಗಿದೆ.

ಟ್ಯುಟೋರಿಯಲ್ ಮೂಲಕ ನ್ಯಾವಿಗೇಷನ್: 1.1 MySQL ಎಂದರೇನು? 1.2 MySQL ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು? 1.3 MySQL ಎಷ್ಟು ಸ್ಥಿರವಾಗಿದೆ? 1.4 MySQL ಕೋಷ್ಟಕಗಳು ಎಷ್ಟು ದೊಡ್ಡದಾಗಿರಬಹುದು? 1.5 MySQL, MySQL AB, MySQL-MAX: ಅದು ಏನು? 1.6 MySQL ಯಾವ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ರನ್ ಆಗುತ್ತದೆ? 1.7 MySQL ವಿತರಣೆಗಳು 1.8 MySQL ಕಮಾಂಡ್ ಲೈನ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳು 2.1 MySQL ಗೆ ಪರಿಚಯ 2.2 MySQL ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸುವುದು 2.3 MySQL ನಲ್ಲಿ ಪ್ರಶ್ನೆಗಳನ್ನು ನಮೂದಿಸುವುದು 2.4 ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ರಚಿಸುವುದು ಮತ್ತು ಬಳಸುವುದು 2.5 MySQL ಡಾಟಾಬ್ ಅನ್ನು ರಚಿಸುವುದು MySQL 6 ಗೆ MySQL ಡಾಟಾಬ್ ಅನ್ನು ರಚಿಸುವುದು. SQL ಕೋಷ್ಟಕ 2.8 ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಆಯ್ಕೆಮಾಡುವುದು ಒಂದು MySQL ಕೋಷ್ಟಕ 2.9 MySQL ಕೋಷ್ಟಕದಿಂದ ನಿರ್ದಿಷ್ಟ ಸಾಲುಗಳನ್ನು ಆಯ್ಕೆಮಾಡುವುದು 2.10 MySQL ಕೋಷ್ಟಕದಿಂದ ಅನಿಯಂತ್ರಿತ ಕಾಲಮ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡುವುದು 2.11 MySQL ಕೋಷ್ಟಕದಿಂದ ಸಾಲುಗಳನ್ನು ವಿಂಗಡಿಸುವುದು 2.12 MySQL ಕೋಷ್ಟಕದಲ್ಲಿ ದಿನಾಂಕಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು 2.13 2.13 NULL ಮೌಲ್ಯಗಳ ಪ್ಯಾಟರ್‌ನಲ್ಲಿ 2.13 MULL ಮೌಲ್ಯಗಳ ಪ್ಯಾಟರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು SQL ಟೆಂಪ್ಲೇಟ್‌ಗಳು. 2.15 SQL ಟೆಂಪ್ಲೇಟ್‌ಗಳಲ್ಲಿ ಸಾಲುಗಳನ್ನು ಎಣಿಸುವುದು. COUNT() ಕಾರ್ಯ 2.16 ಒಂದರಲ್ಲಿ ಬಹು ಕೋಷ್ಟಕಗಳನ್ನು ಬಳಸುವುದು SQL ಪ್ರಶ್ನೆ 2.17 MySQL ಡೇಟಾಬೇಸ್‌ಗಳು ಮತ್ತು ಕೋಷ್ಟಕಗಳ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಪಡೆಯುವುದು 2.18 MySQL ನಲ್ಲಿನ ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳ ಉದಾಹರಣೆಗಳು 2.19 MySQL ಕಾಲಮ್‌ಗೆ ಗರಿಷ್ಠ ಮೌಲ್ಯ 2.20 ಯಾವ ಸಾಲು ನಿರ್ದಿಷ್ಟ MySQL ಕಾಲಮ್‌ನ ಗರಿಷ್ಠವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ 2.21 MySQL 2 ಗುಂಪಿನಲ್ಲಿನ ಗರಿಷ್ಠ ಮೌಲ್ಯವು MySQ2 2 ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಕಾಲಮ್‌ನ ಗರಿಷ್ಠ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಒಂದು ಗುಂಪಿಗಾಗಿ? 2.23 MySQL ನಲ್ಲಿ ಬಳಕೆದಾರ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಬಳಸುವುದು 2.24 MySQL ಕ್ಲೈಂಟ್ ಅನ್ನು ಬ್ಯಾಚ್ ಮೋಡ್‌ನಲ್ಲಿ ಬಳಸುವುದು 3.1 MySQL ನಲ್ಲಿ ಸಾಲುಗಳು 3.2 MySQL ನಲ್ಲಿ ಸಂಖ್ಯೆಗಳು. MySQL ನಲ್ಲಿ ಸಂಖ್ಯೆಗಳನ್ನು ಬರೆಯುವುದು ಹೇಗೆ? MySQL ನಲ್ಲಿ 3.3 ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಮೌಲ್ಯಗಳು 3.4 MySQL ನಲ್ಲಿ NULL ಮೌಲ್ಯಗಳು 3.5 MySQL ನಲ್ಲಿ ಡೇಟಾಬೇಸ್, ಟೇಬಲ್, ಇಂಡೆಕ್ಸ್, ಕಾಲಮ್ ಮತ್ತು ಅಲಿಯಾಸ್ ಹೆಸರುಗಳು MySQL ನಲ್ಲಿ ಕೇಸ್ ಸೆನ್ಸಿಟಿವಿಟಿ 3.6 MySQL ಹೆಸರುಗಳಲ್ಲಿ ಕೇಸ್ ಸೆನ್ಸಿಟಿವಿಟಿ 3.7 MySQL ನಲ್ಲಿ MySQL3 ರಲ್ಲಿ ಬಳಕೆದಾರ ವೇರಿಯೇಬಲ್ಸ್ ವರ್ಡ್ಸ್ 4.8 .1 MySQL ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡುವುದು 4.2 MySQL ನಲ್ಲಿ ಬ್ಯಾಕಪ್ ಟೇಬಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ 4.3 MySQL ನಲ್ಲಿ ಟೇಬಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿ 4.4 MySQL ನಲ್ಲಿ ಟೇಬಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ 4.5 MySQL yntab 4.5 ರಲ್ಲಿ TABLE ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಸರಿಪಡಿಸಿ MySQL 4.8 ರಲ್ಲಿ ಟೇಬಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ MySQL 4.9 K ಸಿಂಟ್ಯಾಕ್ಸ್ ILL ನಲ್ಲಿ ಫ್ಲಶ್ ಸಿಂಟ್ಯಾಕ್ಸ್ MySQL 4.10 SHOW ಸಿಂಟ್ಯಾಕ್ಸ್ MySQL 4.11 MySQL ನಲ್ಲಿ ಟೇಬಲ್ ಸ್ಟೇಟಸ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ತೋರಿಸಿ 4.12 MySQL 4.13 ರಲ್ಲಿ STATUS ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ತೋರಿಸಿ MySQL 4.14 ರಲ್ಲಿ ವೇರಿಯಬಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ತೋರಿಸಿ ಸಮಯ ಮೀರಿದೆ, delay_key_write, delayed_insert_limit 4.17 delayed_insert_timeout, delayed_queue_ size, flush_time 4.18 have_raid, have_ssl, init_file 4.19 ಇಂಟರಾಕ್ಟಿವ್_ಟೈಮ್ಔಟ್, join_buffer_size , key_buffer_size 4.20 language, log_bin, long_query_time 4.21 low_case_table_names, max_allowed_packet, max_binlog_cache_size 4.20 ಗರಿಷ್ಠ ಸಂಪರ್ಕದ ಗರಿಷ್ಠ 4.23 max_join_size, max_sort_length, max_user_connections 4.24 max_tmp_tables, max_write_lock_count, myisam_sort_buffer_size 4.25 mуisam_max_extra_sort_fiisam_max_sort_fiisam_max _length 4.26 net_read_timeout, net_retry_count, net_write_timeout 4.27 open_files_limit, port, record_buffer 4.28 protocol_version, record_rnd_buffer, query_buffer_size 4.29 safe_show_databases, skip_networking, skip_show_databases 4.30 socket, sorttab_buffer_thodshow table_size, wait_timeout 4.32 MySQL 4.33 Syn ಟ್ಯಾಕ್ಸಿಯಲ್ಲಿ PROCESSLIST ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ತೋರಿಸು MySQL 4.34 ನಲ್ಲಿ Syntax SHOW GRANTS MySQL 4.35 ರಲ್ಲಿ ಕೋಷ್ಟಕವನ್ನು ರಚಿಸಿ ತೋರಿಸು MySQL 5.1 MySQL ನಲ್ಲಿ My.cnf ಅನ್ನು MySQL 5.2 ರಲ್ಲಿ MySQL 5.3 ರಲ್ಲಿ ಸಂಖ್ಯಾ ಪ್ರಕಾರದ ವಿಧಗಳು MySQL 5.3 ರಲ್ಲಿ ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಪ್ರಕಾರಗಳನ್ನು ಫೈಲ್ ಮಾಡುತ್ತವೆ. 4 Y2K (2000) ಸಮಸ್ಯೆ ಮತ್ತು MySQL ನಲ್ಲಿ ದಿನಾಂಕ ಪ್ರಕಾರಗಳು 5.5 DATETIME, DATE ಮತ್ತು TIMESTAMP ಪ್ರಕಾರಗಳು MySQL ನಲ್ಲಿ 5.6 TIME ಪ್ರಕಾರ MySQL 5.7 ವರ್ಷದ ಪ್ರಕಾರ MySQL 5.8 CHAR ಮತ್ತು VARCHAR ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕಾರಗಳು MySQL 5.9 BLOB ನಲ್ಲಿ ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕಾರಗಳು ಮತ್ತು MySQL 5.9 BLOB ಪ್ರಕಾರದಲ್ಲಿ ETEXT NUM. MySQL ನಲ್ಲಿ 5.11 MySQL ನಲ್ಲಿ ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕಾರದ ಸೆಟ್ 5.12 MySQL ಕಾಲಮ್‌ಗೆ ಸರಿಯಾದ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆಮಾಡುವುದು 5.13 MySQL ಗಾಗಿ ಇತರ DBMS ಗಳಿಂದ ಕಾಲಮ್ ಪ್ರಕಾರಗಳನ್ನು ಬಳಸುವುದು 5.14 MySQL ಕಾಲಮ್‌ಗಳ ಮೆಮೊರಿ ಅಗತ್ಯತೆಗಳು 6.1 MySQL ಅನ್ನು ಬಳಸಲು ವೈಶಿಷ್ಟ್ಯಗಳು MySQL ನಲ್ಲಿ ಆಪರೇಟರ್ 6.4 MySQL ನಲ್ಲಿ ತಾರ್ಕಿಕ ನಿರ್ವಾಹಕರು 6.5 MySQL ನಲ್ಲಿ ಶಾಖೆಯ ಕಾರ್ಯಗಳು 6.6 MySQL ನಲ್ಲಿ ಸ್ಟ್ರಿಂಗ್ ಕಾರ್ಯಗಳು

ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಿದ ನಂತರ, ನೀವು ಅದನ್ನು ಡೇಟಾದೊಂದಿಗೆ ಜನಪ್ರಿಯಗೊಳಿಸಬೇಕು. ಸೂಚನೆಗಳು ಮತ್ತು ಸೇರಿಸುಇದಕ್ಕಾಗಿ ಉಪಯುಕ್ತ. ಅವರು ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತಾರೆ ಎಂಬುದರ ಕುರಿತು ನಾವು ಮಾತನಾಡುತ್ತೇವೆ, ಆದರೆ ಇದೀಗ ಟೇಬಲ್ಗೆ ನಮೂದಿಸಬೇಕಾದ ಡೇಟಾದ ಬಗ್ಗೆ ಯೋಚಿಸೋಣ. ಅವರು ನಿಖರವಾಗಿ ಹೇಗೆ ಕಾಣುತ್ತಾರೆ?

ನಿಮ್ಮ ವನ್ಯಜೀವಿ ದಾಖಲೆಗಳನ್ನು ಈ ಕೆಳಗಿನಂತೆ ವಿವರಿಸಬಹುದು ಎಂದು ಭಾವಿಸೋಣ. MySQL ವರ್ಷ-ತಿಂಗಳ-ದಿನದ ಸ್ವರೂಪದಲ್ಲಿ ದಿನಾಂಕಗಳನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ, ಇದು ನೀವು ಬಳಸಿದಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿರಬಹುದು. ವರ್ಷವನ್ನು 4 ಅಂಕೆಗಳಾಗಿ ನಮೂದಿಸುವುದು ಉತ್ತಮ. MySQL ಎರಡು-ಅಂಕಿಯ ವರ್ಷದ ಮೌಲ್ಯಗಳನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು ಸಾಕಷ್ಟು ಸಂಕೀರ್ಣವಾದ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ನೀವು ಇದೀಗ ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ, ಆದ್ದರಿಂದ ನಾವು ಡೇಟಾವನ್ನು ನಿಸ್ಸಂದಿಗ್ಧವಾಗಿ ನಮೂದಿಸೋಣ. ನಮ್ಮ ಉದಾಹರಣೆಗಾಗಿ ಎಲ್ಲಾ ಪ್ರಾಣಿ ಡೇಟಾವನ್ನು ಕೋಷ್ಟಕ 2.2 ರಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ:

ಕೋಷ್ಟಕ 2.2. ಪ್ರಾಣಿಗಳ ಡೇಟಾ

ಹೆಸರು ಮಾಲೀಕರು ಜಾತಿಗಳು ಲೈಂಗಿಕ ಜನನ ಸಾವು
ತುಪ್ಪುಳಿನಂತಿರುವ ಹೆರಾಲ್ಡ್ ಬೆಕ್ಕು f 1993-02-04
ತುಪ್ಪುಳಿನಂತಿರುವ ಹೆರಾಲ್ಡ್ ಬೆಕ್ಕು f 1993-02-04
ಉಗುರುಗಳು ಗ್ವೆನ್ ಬೆಕ್ಕು ಮೀ 1994-03-17
ಬಫಿ ಹೆರಾಲ್ಡ್ ನಾಯಿ f 1989-05-13
ಫಾಂಗ್ ಬೆನ್ನಿ ನಾಯಿ ಮೀ 1990-08-27
ಬೌಸರ್ ಡಯಾನ್ ನಾಯಿ ಮೀ 1989-08-31 1995-07-29
ಚಿಲಿಪಿಲಿ ಗ್ವೆನ್ ಹಕ್ಕಿ f 1998-09-11
ಶಿಳ್ಳೆಗಾರ ಗ್ವೆನ್ ಹಕ್ಕಿ 1997-12-09
ಸ್ಲಿಮ್ ಬೆನ್ನಿ ಹಾವು ಮೀ 1996-04-29

ನೀವು ಖಾಲಿ ಟೇಬಲ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುತ್ತಿರುವುದರಿಂದ, ಅದನ್ನು ತುಂಬಲು ಸುಲಭವಾದ ಮಾರ್ಗವೆಂದರೆ ನಿಮ್ಮ ಪ್ರತಿಯೊಂದು ಪ್ರಾಣಿಗಳಿಗೆ ಒಂದು ಸಾಲನ್ನು ಹೊಂದಿರುವ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದು, ತದನಂತರ ಫೈಲ್‌ನ ವಿಷಯಗಳನ್ನು ಕೇವಲ ಒಂದು ಹೇಳಿಕೆಯೊಂದಿಗೆ ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡುವುದು.

ಪ್ರತಿ ಸಾಲಿಗೆ ಒಂದು ನಮೂದನ್ನು ಹೊಂದಿರುವ ಪಠ್ಯ ಫೈಲ್ pet.txt ಅನ್ನು ನೀವು ರಚಿಸಬಹುದು, ಟ್ಯಾಬ್ ಸ್ಟಾಪ್‌ಗಳಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾದ ಮೌಲ್ಯಗಳೊಂದಿಗೆ, ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಿ ಹೇಳಿಕೆಯಲ್ಲಿ ಕಾಲಮ್‌ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲಾದ ಕ್ರಮದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ. ಕಾಣೆಯಾದ ಮೌಲ್ಯಗಳಿಗಾಗಿ (ಇನ್ನೂ ಜೀವಂತವಾಗಿರುವ ಪ್ರಾಣಿಗಳಿಗೆ ಅಜ್ಞಾತ ಲೈಂಗಿಕತೆ ಅಥವಾ ಸಾವಿನ ದಿನಾಂಕಗಳು), ನೀವು NULL ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಬಹುದು. ಅವುಗಳನ್ನು ಪಠ್ಯ ಫೈಲ್‌ನಲ್ಲಿ ಪ್ರತಿನಿಧಿಸಲು, ಲೇಬಲ್ ಅನ್ನು ಬಳಸಿ. ಉದಾಹರಣೆಗೆ, ವಿಸ್ಲರ್ ಹಕ್ಕಿಯ ಬಗ್ಗೆ ನಮೂದು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ (ಟ್ಯಾಬ್ ಅನ್ನು ಸೂಚಿಸಲು ನಾನು ಜಾಗವನ್ನು ಬಳಸುತ್ತೇನೆ):

ವಿಸ್ಲರ್ ಗ್ವೆನ್ ಬರ್ಡ್ 1997-12-09

ಇರುವ pet.txt ಪಠ್ಯ ಫೈಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್(ಕ್ಲೈಂಟ್) ಮತ್ತು ಸರ್ವರ್‌ನಲ್ಲಿ ಅಲ್ಲ, ಪಿಇಟಿ ಟೇಬಲ್‌ಗೆ, ಲೋಡ್ ಡೇಟಾ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ:

Mysql> ಲೋಡ್ ಡೇಟಾ ಸ್ಥಳೀಯ ಇನ್‌ಫೈಲ್ "pet.txt" ಅನ್ನು ಟೇಬಲ್ ಪೆಟ್‌ಗೆ;

ಪ್ರಮುಖ ಪದಗಳು ಈ ಕೆಳಗಿನ ಅರ್ಥವನ್ನು ಹೊಂದಿವೆ. INFILEಡೇಟಾವನ್ನು ಓದಬೇಕಾದ ಫೈಲ್‌ನ ಹೆಸರಿನ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಹೆಸರು ಸ್ಟ್ರಿಂಗ್ ಆಗಿರುವುದರಿಂದ, ಇದು ಉಲ್ಲೇಖಗಳಲ್ಲಿ ಸುತ್ತುವರಿದಿದೆ, ಇಲ್ಲದಿದ್ದರೆ MySQL ಅದನ್ನು ಸಂಖ್ಯಾತ್ಮಕ ಅಭಿವ್ಯಕ್ತಿಯಾಗಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಸ್ಥಳೀಯಫೈಲ್ ಅನ್ನು ಕ್ಲೈಂಟ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಹುಡುಕಬೇಕು ಮತ್ತು ಸರ್ವರ್‌ನಲ್ಲಿ ಅಲ್ಲ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಟೇಬಲ್ ಒಳಗೆಟೇಬಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸೂಚನೆ ನೀಡುತ್ತದೆ, ಅದರ ಹೆಸರನ್ನು TABLE ಪದದ ನಂತರ ತಕ್ಷಣವೇ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ (ಸ್ಪೇಸ್‌ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ).

ನೀವು ಬಯಸಿದಲ್ಲಿ ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ನಲ್ಲಿ ಕಾಲಮ್ ಮೌಲ್ಯ ವಿಭಜಕ ಮತ್ತು ಎಂಡ್-ಆಫ್-ಲೈನ್ ಮಾರ್ಕರ್ ಅನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಆದರೆ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳು ಟ್ಯಾಬ್ ಮತ್ತು ಲೈನ್‌ಫೀಡ್ ಆಗಿರುತ್ತವೆ. pet.txt ಫೈಲ್ ಅನ್ನು ಸರಿಯಾಗಿ ಓದಲು ಅವು ಸಾಕು, ಮತ್ತು ಇದೀಗ ನಿಮಗೆ ಹೆಚ್ಚಿನ ಅಗತ್ಯವಿಲ್ಲ.

ನೀವು ಹೊಸ ನಮೂದುಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಸೇರಿಸಲು ಬಯಸಿದಾಗ, ಸೂಚನೆಯು ಉಪಯುಕ್ತವಾಗಿದೆ ಸೇರಿಸು. ಅದರ ಸರಳ ರೂಪದಲ್ಲಿ, ನೀವು ಪ್ರತಿ ಕಾಲಮ್‌ಗೆ ಮೌಲ್ಯಗಳನ್ನು ಒದಗಿಸುವ ಕ್ರಮದಲ್ಲಿ ಕಾಲಮ್‌ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲಾದ ಟೇಬಲ್ ಹೇಳಿಕೆಯಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ. ಡಯೇನ್ ಹೊಸ ಹ್ಯಾಮ್ಸ್ಟರ್, ಪಫ್ಬಾಲ್ ಅನ್ನು ಪಡೆದರು ಎಂದು ಹೇಳೋಣ. ನೀವು INSERT ಹೇಳಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ನಮೂದನ್ನು ಸೇರಿಸಬಹುದು, ಈ ರೀತಿಯದ್ದು:

MySQL> ಸಾಕುಪ್ರಾಣಿಗಳಲ್ಲಿ ಸೇರಿಸಿ
-> ಮೌಲ್ಯಗಳು ("ಪಫ್‌ಬಾಲ್","ಡಯೇನ್", "ಹ್ಯಾಮ್ಸ್ಟರ್","ಎಫ್","1999-03-30","ಶೂನ್ಯ");

ಇಲ್ಲಿರುವ ಕೀವರ್ಡ್‌ಗಳು ವಿಶೇಷವಾಗಿ ಸಂಕೀರ್ಣವಾಗಿಲ್ಲ. INTO ಪಿಇಟಿ ಇನ್ಸರ್ಟ್ ಯಾವ ಟೇಬಲ್‌ಗೆ ಹೋಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಮೌಲ್ಯಗಳನ್ನುಗಾಗಿ ಸೇರಿಸಲಾದ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ ಹೊಸ ಪ್ರವೇಶಕೋಷ್ಟಕದಲ್ಲಿ. ಮೌಲ್ಯಗಳನ್ನು ಅಲ್ಪವಿರಾಮದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ ಮತ್ತು ಎಲ್ಲಾ ಆವರಣಗಳಲ್ಲಿ ಒಟ್ಟಿಗೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ.

ಸ್ಟ್ರಿಂಗ್‌ಗಳು ಮತ್ತು ದಿನಾಂಕದ ಮೌಲ್ಯವನ್ನು ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಮೌಲ್ಯದ ಅನುಪಸ್ಥಿತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸಲು ನೀವು ನೇರವಾಗಿ NULL ಅನ್ನು ಸೇರಿಸಬಹುದು (ಸ್ಟ್ರಿಂಗ್‌ನಂತೆ ಅಲ್ಲ).

ಟೇಬಲ್‌ಗೆ ನೇರವಾಗಿ ಲೋಡ್ ಮಾಡಲು ಸ್ವಲ್ಪ ಟೈಪಿಂಗ್ ಅಗತ್ಯವಿರುತ್ತದೆ ಎಂದು ನೀವು ಈ ಉದಾಹರಣೆಯಿಂದ ನೋಡಬಹುದು. ಸೂಚನೆಗಳು ಸಾಕಷ್ಟು ಸಮಯವನ್ನು ಉಳಿಸಿವೆ.

ನಾನು ಸಾಕಷ್ಟು ಸಾಮಾನ್ಯ ಪರಿಸ್ಥಿತಿಯನ್ನು ವಿವರಿಸುತ್ತಿದ್ದೇನೆ. ಪೆಂಟೆಸ್ಟ್ ಸಮಯದಲ್ಲಿ, ರಿಮೋಟ್ ಹೋಸ್ಟ್‌ನಲ್ಲಿ phpMyAdmin ಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲಾಯಿತು, ಆದರೆ ಅದರ ಮೂಲಕ ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಕುಖ್ಯಾತ FILE_PRIV=MySQL ಡೀಮನ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಫ್ಲ್ಯಾಗ್ ಇಲ್ಲದೇ ಇರುವುದು ಇದಕ್ಕೆ ಕಾರಣ. ಅನೇಕ ಜನರು ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ಬಿಟ್ಟುಕೊಡುತ್ತಾರೆ ಮತ್ತು ಹೋಸ್ಟ್‌ನಲ್ಲಿರುವ ಫೈಲ್‌ಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ಈ ರೀತಿಯಲ್ಲಿ ಓದಲಾಗುವುದಿಲ್ಲ ಎಂದು ನಂಬುತ್ತಾರೆ. ಆದರೆ ಇದು ಯಾವಾಗಲೂ ಅಲ್ಲ.

ಎಚ್ಚರಿಕೆ

ಎಲ್ಲಾ ಮಾಹಿತಿಯನ್ನು ಮಾಹಿತಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಮಾತ್ರ ಒದಗಿಸಲಾಗಿದೆ. ಈ ಲೇಖನದ ವಸ್ತುಗಳಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಸಂಭವನೀಯ ಹಾನಿಗೆ ಸಂಪಾದಕರು ಅಥವಾ ಲೇಖಕರು ಜವಾಬ್ದಾರರಾಗಿರುವುದಿಲ್ಲ.

ಮುನ್ನುಡಿ

ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ MySQL DBMS ನ ಪರಸ್ಪರ ಕ್ರಿಯೆಗೆ ಬಂದಾಗ, ಅವರು ಸಾಮಾನ್ಯವಾಗಿ ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತಾರೆ:

  • LOAD_FILE ಕಾರ್ಯ, ಇದು ಸರ್ವರ್‌ನಲ್ಲಿ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ;
  • SELECT ... INTO OUTFILE ಸ್ಟ್ರಕ್ಟ್, ಇದನ್ನು ಹೊಸ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸಲು ಬಳಸಬಹುದು.

ಅಂತೆಯೇ, ನೀವು ರಿಮೋಟ್ ಗಣಕದಲ್ಲಿ phpMyAdmin ಅಥವಾ ಯಾವುದೇ ಇತರ ಕ್ಲೈಂಟ್‌ಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದ್ದರೆ, ನಂತರ ಹೆಚ್ಚಿನ ಸಂಭವನೀಯತೆಯೊಂದಿಗೆ ನೀವು MySQL ಮೂಲಕ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಆದರೆ FILE_PRIV=yes ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಡೀಮನ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಹೊಂದಿಸಿದರೆ ಮಾತ್ರ, ಅದು ಯಾವಾಗಲೂ ಅಲ್ಲ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಮತ್ತೊಂದು ಆಪರೇಟರ್ ಬಗ್ಗೆ ನೆನಪಿಟ್ಟುಕೊಳ್ಳಬೇಕು, ಹೆಚ್ಚು ಕಡಿಮೆ ಪ್ರಸಿದ್ಧವಾಗಿದೆ, ಆದರೆ ಅದೇ ಸಮಯದಲ್ಲಿ ಸಾಕಷ್ಟು ಶಕ್ತಿಯುತ ಕಾರ್ಯವನ್ನು ಹೊಂದಿದೆ. ನಾನು ಲೋಡ್ ಡೇಟಾ INFILE ಆಪರೇಟರ್ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇನೆ, ಅದರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಈ ಲೇಖನದಲ್ಲಿ ಚರ್ಚಿಸಲಾಗುವುದು.

PHP ಮತ್ತು MySQL ನಡುವಿನ ಪರಸ್ಪರ ಕ್ರಿಯೆ

ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಲು PHP ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಭಾಷೆಯಾಗಿದೆ, ಆದ್ದರಿಂದ ಇದು ಡೇಟಾಬೇಸ್‌ನೊಂದಿಗೆ ಹೇಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ ಎಂಬುದನ್ನು ಹತ್ತಿರದಿಂದ ನೋಡುವುದು ಯೋಗ್ಯವಾಗಿದೆ.

PHP4 ನಲ್ಲಿ, MySQL ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಗಳನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು PHP ವಿತರಣೆಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ ನೀವು ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ MySQL ಬಳಸುವುದರಿಂದ ಮಾತ್ರ ಹೊರಗುಳಿಯಬಹುದು.

ಮೈಸ್ಕ್ಲ್ ಇಲ್ಲದೆ.

PHP5 ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿ ಇಲ್ಲದೆ ಬರುತ್ತದೆ. *nix ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, PHP5 ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಆಯ್ಕೆಯನ್ನು ಹೊಂದಿಸುವ ಮೂಲಕ ಸರ್ವರ್‌ನಲ್ಲಿ ಈಗಾಗಲೇ ಸ್ಥಾಪಿಸಲಾದ libmysqlclient ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ.

with-mysql=/usr

ಅಸೆಂಬ್ಲಿ ಸಮಯದಲ್ಲಿ. ಆದಾಗ್ಯೂ, ಆವೃತ್ತಿ 5.3 ವರೆಗೆ, MySQL ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿ (libmysql) ಅನ್ನು MySQL ಸರ್ವರ್‌ನೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಲು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು PHP ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ ಸಂವಹನಕ್ಕಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡದ ಇಂಟರ್ಫೇಸ್.

PHP 5.3 ಮತ್ತು ಹೆಚ್ಚಿನ ಆವೃತ್ತಿಗಳಿಗಾಗಿ, MySQL ನೇಟಿವ್ ಡ್ರೈವರ್ (mysqlnd) ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಇತ್ತೀಚೆಗೆ ಬಿಡುಗಡೆಯಾದ PHP 5.4 ಆವೃತ್ತಿಯಲ್ಲಿ ಈ ಚಾಲಕವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಅಂತರ್ನಿರ್ಮಿತ MySQL ಡ್ರೈವರ್ ಅನ್ನು PHP ಗೆ ವಿಸ್ತರಣೆಯಾಗಿ ಬರೆಯಲಾಗಿದ್ದರೂ, ಇದು PHP ಪ್ರೋಗ್ರಾಮರ್‌ಗೆ ಹೊಸ API ಅನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ. ಪ್ರೋಗ್ರಾಮರ್‌ಗಾಗಿ MySQL ಡೇಟಾಬೇಸ್ API ಅನ್ನು MySQL, mysqli ಮತ್ತು PDO_MYSQL ವಿಸ್ತರಣೆಗಳಿಂದ ಒದಗಿಸಲಾಗಿದೆ. MySQL ಡೀಮನ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಈ ವಿಸ್ತರಣೆಗಳು ಅಂತರ್ನಿರ್ಮಿತ MySQL ಡ್ರೈವರ್ ಅನ್ನು ಬಳಸಬಹುದು.

ಅಂತರ್ನಿರ್ಮಿತ MySQL ಡ್ರೈವರ್ ಅನ್ನು ಬಳಸುವುದು MySQL ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಯ ಮೇಲೆ ಕೆಲವು ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆ: ಉದಾಹರಣೆಗೆ, ನೀವು PHP ಅನ್ನು ನಿರ್ಮಿಸಲು ಅಥವಾ ಡೇಟಾಬೇಸ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಬಳಸಲು MySQL ಅನ್ನು ಸ್ಥಾಪಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. MySQL ನೇಟಿವ್ ಡ್ರೈವರ್ ಮತ್ತು ಇದು libmysql ನಿಂದ ಹೇಗೆ ಭಿನ್ನವಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ದಸ್ತಾವೇಜನ್ನು ಕಾಣಬಹುದು.

MySQL, mysqli, ಮತ್ತು PDO_MYSQL ವಿಸ್ತರಣೆಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ libmysql ಅಥವಾ mysqlnd ಅನ್ನು ಬಳಸಲು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, MySQL ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲು MySQL ವಿಸ್ತರಣೆಯನ್ನು ಮತ್ತು MySQL ಸ್ಥಳೀಯ ಡ್ರೈವರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು mysqli ವಿಸ್ತರಣೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು, ನೀವು ಈ ಕೆಳಗಿನ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು:

`./configure --with-mysql=/usr/bin/mysql_config --with-mysqli=mysqlnd`

ಡೇಟಾ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ

ಲೋಡ್ ಡೇಟಾ ಹೇಳಿಕೆಯು, ದಸ್ತಾವೇಜನ್ನು ಹೇಳುವಂತೆ, ಫೈಲ್‌ನಿಂದ ಸಾಲುಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಹೆಚ್ಚಿನ ವೇಗದಲ್ಲಿ ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಇದರೊಂದಿಗೆ ಬಳಸಬಹುದು ಕೀವರ್ಡ್ LOCAL (MySQL 3.22.6 ಮತ್ತು ನಂತರದಲ್ಲಿ ಲಭ್ಯವಿದೆ), ಇದು ಡೇಟಾವನ್ನು ಎಲ್ಲಿಂದ ಲೋಡ್ ಮಾಡಲಾಗುವುದು ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. LOCAL ಎಂಬ ಪದವು ಕಾಣೆಯಾಗಿದ್ದರೆ, ಸರ್ವರ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಅನ್ನು ಅದರ ಸ್ಥಳೀಯ ಯಂತ್ರದಿಂದ ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಕ್ಲೈಂಟ್‌ನ ಯಂತ್ರದಿಂದ ಅಲ್ಲ. ಅಂದರೆ, ಫೈಲ್ ಅನ್ನು MySQL ಕ್ಲೈಂಟ್‌ನಿಂದ ಓದಲಾಗುವುದಿಲ್ಲ, ಆದರೆ MySQL ಸರ್ವರ್‌ನಿಂದ ಓದಲಾಗುತ್ತದೆ. ಆದರೆ ಈ ಕಾರ್ಯಾಚರಣೆಗೆ ಮತ್ತೊಮ್ಮೆ FILE ಸವಲತ್ತು (FILE_PRIV=ಹೌದು ಫ್ಲ್ಯಾಗ್) ಅಗತ್ಯವಿದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ ಹೇಳಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದನ್ನು LOAD_FILE ಕಾರ್ಯವನ್ನು ಬಳಸುವುದಕ್ಕೆ ಹೋಲಿಸಬಹುದು - ಒಂದೇ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಡೇಟಾವನ್ನು ಔಟ್‌ಪುಟ್‌ಗಿಂತ ಟೇಬಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ. ಹೀಗಾಗಿ, ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ಲೋಡ್ ಡೇಟಾ INFILE ಅನ್ನು ಬಳಸುವುದು LOAD_FILE ಕಾರ್ಯವು ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಮಾತ್ರ ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ, ಅಂದರೆ MySQL ಸರ್ವರ್‌ನ ಹಳೆಯ ಆವೃತ್ತಿಗಳಲ್ಲಿ.

ಆದರೆ ಆಪರೇಟರ್ ಅನ್ನು ಈ ರೂಪದಲ್ಲಿ ಬಳಸಿದರೆ: ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್, ಅಂದರೆ, ಸ್ಥಳೀಯ ಪದವನ್ನು ಬಳಸಿ, ನಂತರ ಫೈಲ್ ಅನ್ನು ಕ್ಲೈಂಟ್ ಪ್ರೋಗ್ರಾಂ (ಕ್ಲೈಂಟ್‌ನ ಯಂತ್ರದಲ್ಲಿ) ಓದುತ್ತದೆ ಮತ್ತು ಡೇಟಾಬೇಸ್ ಇರುವ ಸರ್ವರ್‌ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು FILE ಸವಲತ್ತು ಸ್ವಾಭಾವಿಕವಾಗಿ ಅಗತ್ಯವಿಲ್ಲ (ಎಲ್ಲವೂ ಕ್ಲೈಂಟ್‌ನ ಯಂತ್ರದಲ್ಲಿ ನಡೆಯುತ್ತದೆ).

MySQL/mysqli/PDO_MySQL ವಿಸ್ತರಣೆಗಳು ಮತ್ತು ಲೋಡ್ ಡೇಟಾ ಸ್ಥಳೀಯ ಹೇಳಿಕೆ

MySQL ವಿಸ್ತರಣೆಯಲ್ಲಿ, LOCAL ಅನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು PHP_INI_SYSTEM ನಿರ್ದೇಶನ mysql.allow_local_infile ನಿಂದ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಈ ನಿರ್ದೇಶನವು 1 ರ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಆದ್ದರಿಂದ ನಮಗೆ ಅಗತ್ಯವಿರುವ ಆಪರೇಟರ್ ಸಾಮಾನ್ಯವಾಗಿ ಲಭ್ಯವಿದೆ. ಅಲ್ಲದೆ, mysql_connect ಕಾರ್ಯವು ಐದನೇ ಆರ್ಗ್ಯುಮೆಂಟ್ ಸ್ಥಿರ 128 ಅನ್ನು ಹೊಂದಿದ್ದರೆ ಲೋಡ್ ಡೇಟಾ LOCAL ಅನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು PDO_MySQL ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಿದಾಗ, ನಾವು PDO ::MYSQL_ATTR_LOCAL_INFILE (ಪೂರ್ಣಾಂಕ) ಸ್ಥಿರವನ್ನು ಬಳಸಿಕೊಂಡು LOCAL ಬೆಂಬಲವನ್ನು ಸಹ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು

$pdo = ಹೊಸ PDO("mysql:host=localhost;dbname=mydb", "user", "pass", array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1));

ಆದರೆ LOAD DATA ಆಪರೇಟರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಹೆಚ್ಚಿನ ಅವಕಾಶಗಳನ್ನು mysqli ವಿಸ್ತರಣೆಯಿಂದ ಒದಗಿಸಲಾಗಿದೆ. ಈ ವಿಸ್ತರಣೆಯು PHP_INI_SYSTEM ನಿರ್ದೇಶನ mysqli.allow_local_infile ಅನ್ನು ಸಹ ಒದಗಿಸುತ್ತದೆ, ಇದು LOCAL ನ ಬಳಕೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.

mysqli_real_connect ಮೂಲಕ ಸಂಪರ್ಕವನ್ನು ಮಾಡಲಾಗಿದ್ದರೆ, mysqli_options ಬಳಸಿ ನಾವು LOCAL ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು ಮತ್ತು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು. ಇದಲ್ಲದೆ, mysqli_set_local_infile_handler ಕಾರ್ಯವು ಈ ವಿಸ್ತರಣೆಯಲ್ಲಿ ಲಭ್ಯವಿದೆ, ಇದು ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ INFILE ಹೇಳಿಕೆಯಿಂದ ಓದಲಾದ ಫೈಲ್‌ಗಳ ವಿಷಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಕಾಲ್‌ಬ್ಯಾಕ್ ಕಾರ್ಯವನ್ನು ನೋಂದಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಫೈಲ್ಗಳನ್ನು ಓದುವುದು

ನಾವು phpMyAdmin ನಲ್ಲಿ ಖಾತೆಯನ್ನು ಹೊಂದಿದ್ದರೆ, ನಾವು FILE ಸವಲತ್ತುಗಳಿಲ್ಲದೆಯೇ ಅನಿಯಂತ್ರಿತ ಫೈಲ್‌ಗಳನ್ನು ಓದಬಹುದು ಮತ್ತು open_basedir ನಿರ್ಬಂಧಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಬಹುದು ಎಂದು ಗಮನಿಸುವ ಓದುಗರು ಬಹುಶಃ ಈಗಾಗಲೇ ಊಹಿಸಿದ್ದಾರೆ. ಎಲ್ಲಾ ನಂತರ, ಕ್ಲೈಂಟ್ (ಈ ಸಂದರ್ಭದಲ್ಲಿ phpMyAdmin) ಮತ್ತು MySQL ಡೀಮನ್ ಎರಡೂ ಒಂದೇ ಯಂತ್ರದಲ್ಲಿ ನೆಲೆಗೊಂಡಿವೆ. MySQL ಸರ್ವರ್‌ನ ಭದ್ರತಾ ನೀತಿಯ ಮಿತಿಗಳ ಹೊರತಾಗಿಯೂ, ಈ ನೀತಿಯು ಕ್ಲೈಂಟ್‌ಗೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ ಎಂಬ ಅಂಶದ ಲಾಭವನ್ನು ನಾವು ಪಡೆಯಬಹುದು ಮತ್ತು ಡೇಟಾಬೇಸ್‌ಗೆ ತಳ್ಳುವ ಮೂಲಕ ಸಿಸ್ಟಮ್‌ನಿಂದ ಫೈಲ್‌ಗಳನ್ನು ಇನ್ನೂ ಓದಬಹುದು.

ಅಲ್ಗಾರಿದಮ್ ಸರಳವಾಗಿದೆ. ಕೆಳಗಿನ SQL ಪ್ರಶ್ನೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಾಕು:

  1. ನಾವು ಫೈಲ್‌ಗಳ ವಿಷಯಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡುವ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ: ಟೇಬಲ್ ಟೆಂಪ್ (ವಿಷಯ ಪಠ್ಯ) ರಚಿಸಿ;
  2. ನಾವು ರಚಿಸಿದ ಟೇಬಲ್‌ಗೆ ಫೈಲ್‌ನ ವಿಷಯಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ: ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್ "/ಇತ್ಯಾದಿ/ಹೋಸ್ಟ್‌ಗಳನ್ನು" ಟೇಬಲ್ ಟೆಂಪ್ ಫೀಲ್ಡ್‌ಗಳಿಗೆ ಲೋಡ್ ಮಾಡಿ "eof" ಮೂಲಕ ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ

ವಾಯ್ಲಾ. /etc/hosts ಫೈಲ್‌ನ ವಿಷಯಗಳು ಈಗ ಟೆಂಪ್ ಟೇಬಲ್‌ನಲ್ಲಿವೆ. ಬೈನರಿ ಫೈಲ್‌ಗಳನ್ನು ಓದಬೇಕೆ? ಯಾವ ತೊಂದರೆಯಿಲ್ಲ. ಮೊದಲ ಹಂತದಲ್ಲಿ ನಾವು ಈ ರೀತಿಯ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಿದರೆ:

ಟೇಬಲ್ "ಬಿನ್" ರಚಿಸಿ ("ಬಿನ್" ಬ್ಲಾಬ್ ಶೂನ್ಯವಲ್ಲ) ಇಂಜಿನ್ = MYISAM ;

ನಂತರ ಬೈನರಿ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ನಿಜ, ಹೆಚ್ಚುವರಿ ಬಿಟ್‌ಗಳನ್ನು ಫೈಲ್‌ಗಳ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಅವುಗಳನ್ನು ಯಾವುದೇ ಹೆಕ್ಸ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ತೆಗೆದುಹಾಕಬಹುದು. ಈ ರೀತಿಯಲ್ಲಿ ನೀವು ಸರ್ವರ್‌ನಿಂದ IonCube/Zend/TrueCrypt/NuSphere ನಿಂದ ರಕ್ಷಿಸಲ್ಪಟ್ಟ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಅವುಗಳನ್ನು ಡಿಕೋಡ್ ಮಾಡಬಹುದು.

ನೀವು ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್ ಅನ್ನು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬುದರ ಇನ್ನೊಂದು ಉದಾಹರಣೆಯೆಂದರೆ ಅಪಾಚೆ ಕಾನ್ಫಿಗರೇಶನ್‌ಗೆ ಮಾರ್ಗವನ್ನು ಕಂಡುಹಿಡಿಯುವುದು. ಇದನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಮಾಡಲಾಗುತ್ತದೆ:

  1. ಮೊದಲಿಗೆ, ನಾವು ಬೈನರಿಗೆ ಮಾರ್ಗವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೇವೆ; ಇದನ್ನು ಮಾಡಲು, ಮೇಲೆ ವಿವರಿಸಿದ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು /proc/self/cmdline ಅನ್ನು ಓದಿ.
  2. ತದನಂತರ ನಾವು ಬೈನರಿಯನ್ನು ನೇರವಾಗಿ ಓದುತ್ತೇವೆ, ಅಲ್ಲಿ ನಾವು HTTPD_ROOT/SERVER_CONFIG_FILE ಅನ್ನು ಹುಡುಕುತ್ತೇವೆ.


ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ phpMyAdmin ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಕ್ಲೈಂಟ್‌ನ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತವೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿದೆ. ಮತ್ತು phpMyAdmin ಬದಲಿಗೆ, ನೀವು MySQL ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಯಾವುದೇ ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬಳಸಬಹುದು.

ಉದಾಹರಣೆಗೆ, ಡೇಟಾಬೇಸ್ ಅನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಲು ಮತ್ತು ಮರುಸ್ಥಾಪಿಸಲು ನೀವು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಬಳಸಬಹುದು. 2007 ರಲ್ಲಿ, ಆಸಿಡ್‌ರೂಟ್ ಎಂಬ ಅಡ್ಡಹೆಸರಿನಡಿಯಲ್ಲಿ ಫ್ರೆಂಚ್ ಹ್ಯಾಕರ್ ಈ ಹೇಳಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ಶೋಷಣೆಯನ್ನು ಪ್ರಕಟಿಸಿದರು ಮತ್ತು phpBB ನಿರ್ವಾಹಕ ಫಲಕದಿಂದ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡಿದರು.<= 2.0.22.

ಸುರಂಗವು ಅನುಕೂಲಕರವಾಗಿದೆ. ಸುರಂಗ ಅಸುರಕ್ಷಿತವಾಗಿದೆ

ಸಂಕೀರ್ಣ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸುವಾಗ, ಡೇಟಾಬೇಸ್‌ಗೆ ನೇರ ಪ್ರವೇಶವು ಆಗಾಗ್ಗೆ ಅಗತ್ಯವಾಗಿರುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ಆರಂಭಿಕ ಸಂರಚನೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಹೊಂದಾಣಿಕೆಗಾಗಿ. ಆದ್ದರಿಂದ, ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಸರ್ವರ್‌ನಲ್ಲಿ ಸರಳವಾದ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ - MySQL ಟನಲ್ ಎಂದು ಕರೆಯಲ್ಪಡುವ, ಇದು ಹೆವಿ-ಹ್ಯಾಂಡೆಡ್ phpMyAdmin ಬದಲಿಗೆ ಅನುಕೂಲಕರ ಕ್ಲೈಂಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾಬೇಸ್ ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಡೇಟಾಬೇಸ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಕೆಲವು ಸುರಂಗಗಳಿವೆ, ಆದರೆ ಅವೆಲ್ಲವೂ ತುಂಬಾ ಸಾಮಾನ್ಯವಲ್ಲ. ಬಹುಶಃ ಅತ್ಯಂತ ಪ್ರಸಿದ್ಧವಾದದ್ದು ಮ್ಯಾಕ್ರೋಮೀಡಿಯಾ ಡ್ರೀಮ್ ವೀವರ್ ಸರ್ವರ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು. ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ನೀವು ವೀಕ್ಷಿಸಬಹುದು.

MySQL Tunnel ಮತ್ತು phpMyAdmin ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಡೇಟಾಬೇಸ್‌ಗಾಗಿ ಲಾಗಿನ್ ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮಾತ್ರ ನಮೂದಿಸುವ ಅವಶ್ಯಕತೆಯಿದೆ, ಆದರೆ ಸಂಪರ್ಕಿಸಲು ಹೋಸ್ಟ್ ಕೂಡ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಸುರಂಗಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಸಕ್ರಿಯವಾಗಿರುತ್ತವೆ, ಒಂದು ವೇಳೆ, ಬೇರೆ ಯಾವುದನ್ನು ಸರಿಹೊಂದಿಸಬೇಕೆಂದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲ. ನೀವು ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಖಾತೆಯನ್ನು ಹೊಂದಿದ್ದರೆ ಮಾತ್ರ ನೀವು ಅವುಗಳನ್ನು ಬಳಸಬಹುದು ಎಂದು ತೋರುತ್ತದೆ - ಹಾಗಾದರೆ ಏಕೆ ಭಯಪಡಬೇಕು? ಸಂಕ್ಷಿಪ್ತವಾಗಿ, ಸುರಂಗವು ವೆಬ್ ಸರ್ವರ್‌ಗೆ ನಿರ್ದಿಷ್ಟ ಭದ್ರತಾ ಬೆದರಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವುದಿಲ್ಲ ಎಂದು ತೋರುತ್ತದೆ. ಆದರೆ ವಾಸ್ತವದಲ್ಲಿ, ಎಲ್ಲವೂ ಮೊದಲ ನೋಟದಲ್ಲಿ ತೋರುವಷ್ಟು ಉತ್ತಮವಾಗಿಲ್ಲ.

ಕೆಳಗಿನ ಪರಿಸ್ಥಿತಿಯನ್ನು ಪರಿಗಣಿಸಿ. ಸ್ಥಾಪಿತವಾದ ಸುರಂಗ http://site.com/_mmServerScripts/MMHTTPDB.php ನೊಂದಿಗೆ ಸೈಟ್.com ಅನ್ನು ಸರ್ವರ್ A ಹೊಂದಲು ಅನುಮತಿಸಿ. ಸರ್ವರ್ A ನಲ್ಲಿ ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಿದೆ ಎಂದು ಭಾವಿಸೋಣ (ಮೇಲೆ ಚರ್ಚಿಸಿದಂತೆ, ಇದು ಡೀಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳೊಂದಿಗೆ ಸಾಧ್ಯ). ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ರಿಮೋಟ್ MySQL ಸರ್ವರ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಅದರ ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ಎಲ್ಲಿಂದಲಾದರೂ ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಇದು LOCAL ನ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಸುರಂಗವನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸುತ್ತದೆ. ರಿಮೋಟ್ MySQL ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಡೇಟಾ:

DB ಹೋಸ್ಟ್: xx.xx.xx.xxx DB ಹೆಸರು: name_remote_db DB ಬಳಕೆದಾರ: our_user DB Pass: our_pass

ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ, ಸರ್ವರ್ ಎ ಕ್ಲೈಂಟ್‌ನ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ನಾವು ಫೈಲ್‌ಗಳನ್ನು ಅದರ ಹೋಸ್ಟ್‌ನಿಂದ ರಿಮೋಟ್ ಡೇಟಾಬೇಸ್‌ಗೆ ಕಳುಹಿಸಬಹುದು ಅಥವಾ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಫೈಲ್‌ಗಳನ್ನು ಓದಬಹುದು. ಕೆಳಗಿನ ಸರಳ ಪ್ರಶ್ನೆಯೊಂದಿಗೆ:

ಪ್ರಕಾರ=MYSQL&Timeout=100&Host=xx.xx.xx.xxx&Database=name_remote_db&UserName=our_user&Password=our_pass&opCode=ExecuteSQL&SQL=LOAD DATA/LOCALTOP tmp_tbl ಕ್ಷೇತ್ರಗಳನ್ನು "__eof__" ESCAP ED ಮೂಲಕ ಕೊನೆಗೊಳಿಸಲಾಗಿದೆ " "__eof__" ನಿಂದ ಕೊನೆಗೊಂಡ ಸಾಲುಗಳು

ವಾಸ್ತವವಾಗಿ, ಈ ದುರ್ಬಲತೆಯು ಸಾಮಾನ್ಯ ಫೈಲ್ ಓದುವಿಕೆಗಿಂತ ಹೆಚ್ಚು ಅಪಾಯಕಾರಿಯಾಗಿದೆ: ಎಲ್ಲಾ ನಂತರ, ಸರ್ವರ್ A ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅದೇ ಸುರಂಗದ ಮೂಲಕ, ನೀವು ಈಗಾಗಲೇ ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಡೇಟಾಬೇಸ್‌ಗೆ ನೇರ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಬಹುದು. ಸ್ನಾಯು ಸುರಂಗಗಳನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಮೇಲೆ ವಿವರಿಸಿದ ತಂತ್ರವನ್ನು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಸಾಮಾನ್ಯೀಕರಿಸಬಹುದು ಮತ್ತು ಅನುಕ್ರಮವಲ್ಲದ ದುರ್ಬಲತೆಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವಾಗ ಅನ್ವಯಿಸಬಹುದು.


ಕ್ಲೈಂಟ್-ಸರ್ವರ್

ಲೋಡ್ ಡೇಟಾದ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, MySQL DBMS ಸಾಂಪ್ರದಾಯಿಕ ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ ಎಂಬುದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದು ಅವಶ್ಯಕ. MySQL ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ನಾವು ವಾಸ್ತವವಾಗಿ ಎರಡು ಪ್ರೋಗ್ರಾಂಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತೇವೆ:

  • ಡೇಟಾಬೇಸ್ ಸಂಗ್ರಹವಾಗಿರುವ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್ ಸರ್ವರ್ ಪ್ರೋಗ್ರಾಂ. mysqld ಡೀಮನ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಕ್ಲೈಂಟ್ ವಿನಂತಿಗಳನ್ನು ಆಲಿಸುತ್ತದೆ ಮತ್ತು ಡೇಟಾಬೇಸ್‌ನ ವಿಷಯಗಳನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ, ಕ್ಲೈಂಟ್‌ಗಳು ವಿನಂತಿಸುವ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. mysqld ಅನ್ನು --local-infile=0 ಆಯ್ಕೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿದರೆ, ನಂತರ LOCAL ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ;
  • ಕ್ಲೈಂಟ್ ಪ್ರೋಗ್ರಾಂ ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ ಮತ್ತು ವಿನಂತಿಗಳನ್ನು ಸರ್ವರ್‌ಗೆ ರವಾನಿಸುತ್ತದೆ. MySQL DBMS ವಿತರಣೆಯು ಹಲವಾರು ಕ್ಲೈಂಟ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: MySQL ಕನ್ಸೋಲ್ ಕ್ಲೈಂಟ್ (ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ), ಹಾಗೆಯೇ mysqldump, mysqladmin, mysqlshow, mysqlimport, ಇತ್ಯಾದಿ. ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ, ನೀವು MySQL DBMS ನೊಂದಿಗೆ ಬರುವ ಪ್ರಮಾಣಿತ libmysql ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಯನ್ನು ಆಧರಿಸಿ ನಿಮ್ಮ ಸ್ವಂತ ಕ್ಲೈಂಟ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಸಹ ರಚಿಸಬಹುದು.

ಪ್ರಮಾಣಿತ MySQL ಕ್ಲೈಂಟ್ ಅನ್ನು ಬಳಸುವಾಗ, ನೀವು ಲೋಡ್ ಡೇಟಾ ಲೋಕಲ್ ಹೇಳಿಕೆಯನ್ನು ಬಳಸಲಾಗದಿದ್ದರೆ, ನೀವು --local-infile ಸ್ವಿಚ್ ಅನ್ನು ಬಳಸಬೇಕು:

Mysql --local-infile sampdb mysql> ಲೋಡ್ ಡೇಟಾ ಸ್ಥಳೀಯ INFILE "member.txt" ಅನ್ನು ಟೇಬಲ್ ಸದಸ್ಯರಾಗಿ;

ಅಥವಾ /my.cnf ಫೈಲ್‌ನಲ್ಲಿ ಕ್ಲೈಂಟ್‌ಗಾಗಿ ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ:

ಲೋಕಲ್-ಇನ್‌ಫೈಲ್=1

MySQL 3.23.48 ಮತ್ತು ಹಳೆಯ ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಎಲ್ಲಾ MySQL ಕ್ಲೈಂಟ್‌ಗಳು ಮತ್ತು ಲೈಬ್ರರಿಗಳನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ --enable-local-infile ಆಯ್ಕೆಯೊಂದಿಗೆ ಸಂಕಲಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ, ಆದ್ದರಿಂದ ಲೋಡ್ ಡೇಟಾ LOCAL ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಮಾಣಿತ ಕ್ಲೈಂಟ್‌ಗಳಿಗೆ ಲಭ್ಯವಿದೆ. ಆದಾಗ್ಯೂ, MySQL ಸರ್ವರ್‌ಗೆ ಆಜ್ಞೆಗಳನ್ನು ಮುಖ್ಯವಾಗಿ ಕನ್ಸೋಲ್‌ನಿಂದ ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಿಂದ ಕಳುಹಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ವೆಬ್ ಅಭಿವೃದ್ಧಿ ಭಾಷೆಗಳು ಡೇಟಾಬೇಸ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಕ್ಲೈಂಟ್‌ಗಳನ್ನು ಸಹ ಹೊಂದಿವೆ, ಇದು ಪ್ರಮಾಣಿತ MySQL ಕ್ಲೈಂಟ್‌ನಿಂದ ಕ್ರಿಯಾತ್ಮಕತೆಗೆ ಭಿನ್ನವಾಗಿರಬಹುದು.

ಸಹಜವಾಗಿ, ಲೋಡ್ ಡೇಟಾ ಹೇಳಿಕೆಯ ಈ ವೈಶಿಷ್ಟ್ಯವು ಸಿಸ್ಟಮ್ ಭದ್ರತೆಗೆ ಅಪಾಯವನ್ನುಂಟುಮಾಡುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ, MySQL 3.23.49 ಮತ್ತು MySQL 4.0.2 (ವಿನ್‌ಗಾಗಿ 4.0.13) ನಿಂದ ಪ್ರಾರಂಭಿಸಿ, ಕ್ಲೈಂಟ್ ಎರಡೂ ಇದ್ದರೆ ಮಾತ್ರ LOCAL ಆಯ್ಕೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಮತ್ತು ಸರ್ವರ್ ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.

ತೆರೆದ_ಆಧಾರಿತ ನಿರ್ಬಂಧಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಿ

LOAD DATA ಅನ್ನು ಬಳಸುವುದರಿಂದ ಆಗಾಗ್ಗೆ ನೀವು open_basedir ನಿರ್ಬಂಧಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಹಂಚಿಕೊಂಡ ಹೋಸ್ಟಿಂಗ್‌ನಲ್ಲಿ ನಾವು ಒಬ್ಬ ಬಳಕೆದಾರರ ಡೈರೆಕ್ಟರಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದ್ದರೆ, ಆದರೆ ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯಿಂದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಓದಲು ಬಯಸಿದರೆ ಇದು ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ. ನಂತರ, ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು

1)); $e=$pdo->exec("__eof__" ನಿಂದ ಎಸ್ಕೇಪ್ ಮಾಡಲಾದ "__eof__" ರೇಖೆಗಳಿಂದ ಮುಕ್ತಾಯಗೊಳಿಸಲಾದ "__eof__" ಮೂಲಕ ಮುಕ್ತಾಯಗೊಳಿಸಲಾದ ಟೇಬಲ್ ಪರೀಕ್ಷಾ ಕ್ಷೇತ್ರಗಳಿಗೆ "ಡೇಟಾ ಲೋಕಲ್ ಇನ್‌ಫೈಲ್ "./path/to/file" ಅನ್ನು ಲೋಡ್ ಮಾಡಿ); $pdo = ಶೂನ್ಯ; ?>

ತೀರ್ಮಾನ

ಲೋಡ್ ಡೇಟಾ ಆಪರೇಟರ್‌ನ ವಿವರಿಸಿದ ಸಾಮರ್ಥ್ಯವು ಕನಿಷ್ಠ ಹತ್ತು ವರ್ಷಗಳವರೆಗೆ ತಿಳಿದಿದೆ ಎಂಬುದು ಕುತೂಹಲಕಾರಿಯಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಅದರ ಉಲ್ಲೇಖವನ್ನು ಟಿಕೆಟ್‌ನಲ್ಲಿ ಕಾಣಬಹುದು [#15408] (ಸುರಕ್ಷಿತ ಮೋಡ್ / MySQL Vuln 2002-02-06), ಮತ್ತು ನಂತರ ಇದೇ ರೀತಿಯ ಪ್ರಶ್ನೆಗಳು ಪದೇ ಪದೇ bugs.php.net [#21356] [#23779] ನಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡವು. ] [#28632 ] [#31261] [#31711]. ಇದಕ್ಕೆ ಡೆವಲಪರ್‌ಗಳು ಈ ಕೆಳಗಿನವುಗಳಿಗೆ ಮೌಖಿಕವಾಗಿ ಉತ್ತರಿಸಿದರು:

[ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]ಇದು ದೋಷವಲ್ಲ, ಇದು ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ :)

ಅಥವಾ ಅವರು "ಸ್ಥಿತಿ: ಸರಿಪಡಿಸುವುದಿಲ್ಲ" ಎಂಬ ಟಿಕೆಟ್ ಅನ್ನು ನಿಯೋಜಿಸಿದ್ದಾರೆ. ಅಥವಾ ಅವು ಬಹುತೇಕ ಏನನ್ನೂ ಪರಿಹರಿಸದ ಪ್ಯಾಚ್‌ಗಳಿಗೆ ಸೀಮಿತವಾಗಿವೆ. ಈ ವಿಷಯದ ಮೇಲೆ ಟಿಕೆಟ್ ಮತ್ತೆ ಹುಟ್ಟಿಕೊಂಡಿತು. ಆದ್ದರಿಂದ, open_basedir ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡುವ ನಿರ್ದಿಷ್ಟ ವಿಧಾನವು ಇನ್ನೂ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಹೊಸ mysqlnd ಡ್ರೈವರ್‌ನ ಆಗಮನದೊಂದಿಗೆ, ಗಮನಾರ್ಹ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ನಿರ್ಧಾರವನ್ನು ಮಾಡಲಾಗಿದೆ ಎಂದು ತೋರುತ್ತದೆ: ಡೀಫಾಲ್ಟ್ ಸ್ಥಾಪನೆಗಳೊಂದಿಗೆ, ಈ ಆಪರೇಟರ್ ಅನ್ನು ಈಗ ಎಲ್ಲಾ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ [#54158] [#55737]. ಮುಂದಿನ ದಿನಗಳಲ್ಲಿ ಡೆವಲಪರ್‌ಗಳು ಈ ವಿಷಯದಲ್ಲಿ ವಿಷಯಗಳನ್ನು ಕ್ರಮಬದ್ಧಗೊಳಿಸುತ್ತಾರೆ ಎಂದು ಭಾವಿಸೋಣ.