Довідник по mysql sql вставка рядка в таблицю insert

Команда MySQLINSERT виробляє вставку нових рядків у таблицю.

Синтаксис команди INSERT

Загальні положення роботи команди INSERT:

tbl_name - Задає ім'я таблиці, в яку буде вставлена ​​нова рядок. На момент запуску команди INSERT таблиця з таким ім'ям повинна існувати в базі даних. LOW_PRIORITY - Якщо вказаний цей параметр, то вставка нового запису буде відкладена до тих пір, поки інші сценарії не закінчать читання з цієї таблиці. Треба відзначити, що якщо таблиця часто використовується, то при вказівці цього параметра може пройти досить багато часу, перш ніж дана команда буде виконана. DELAYED - Якщо вказаний цей параметр, то після виконання команди INSERT сценарій відразу ж отримає відповідь від БД про успішної вставці нового запису, а запис буде вставлено тільки після завершення використання даної таблиці іншим сценарієм. Це може бути зручно, якщо потрібна висока швидкість роботи скрипта. Даний параметр працює тільки з таблицями типу ISAM і MyISAM. Прямуємо відзначити, що якщо таблиця, в яку відбувається вставка запису, в даний момент не використовується іншими запитами, то команда INSERT DELAYED буде працювати повільніше, ніж INSER. Так що рекомендується використовувати параметр DELAYED тільки при великому навантаженні на таблицю. IGNORE - Якщо деякі поля таблиці мають ключі PRIMARY або UNIQUE, і проводиться вставка нового рядка, в якій ці поля мають дублюючі значення, то дія команди аварійно завершується і видається помилка №1062 ( "Duplicate entry 'val' for key N"). Якщо в команді INSERT вказано ключове слово IGNORE, то вставка записів не переривається, а рядки з дублюючими значеннями просто не вставляються.

Якщо MySQL був налаштований з використанням опції DONT_USE_DEFAULT_FIELDS, то команда INSERT буде генерувати помилку, якщо явно не вказати величини для всіх стовпців, які вимагають у допустимих-NULL.

Для того, щоб дізнатися значення, присвоєне полю з ключем AUTO_INCREMENT, можна скористатися функцією mysql_insert_id ().

Щоб додати нові записи в існуючу таблицю за допомогою команди INSERT існує три основних синтаксису:

INSERT. VALUES - У цьому випадку в команді чітко вказується порядок проходження встановлюються полів і їх значень. Наступна команда вставить в таблицю users новий запис, присвоївши полях name. age. country. city ​​значення Evgen. 26. Russia. Ryazan відповідно: Якщо для поля або групи полів, присутніх в таблиці не встановити значення, то використовується значення, встановлене за замовчуванням при створенні таблиці: Після виконання цієї команди поле country отримає значення за замовчуванням. Якщо при виконанні команди INSERT не були зазначені назви полів, то в VALUES () повинні бути вказані значення для всіх полів таблиці. Якщо список полів таблиці заздалегідь не відомий, то його можна дізнатися за допомогою команди: Результатом цієї команди буде таблиця приблизно такого змісту: Тут обробивши отримані дані в поле Field можна отримати все поля таблиці. INSERT. SET - У цьому випадку в команді кожному полю, присутнього в таблиці, присвоюється значення у вигляді ім'я поля = 'значення'. Наступний приклад по результату ідентичний першому прикладу для INSERT. VALUE. Так само, як і з INSERT. VALUES. якщо одному або декількох полях не поставити значення, то встановиться значення за замовчуванням. Як значення полів можна привласнювати не тільки значення, а й вираження. У виразах дозволено використовувати значення полів таблиці, які вже були встановлені в цій команді: або INSERT. SELECT - Такий синтаксис дозволяє внести в таблицю велика кількість записів за один раз, причому з різних таблиць. Наступний приклад запише в таблицю users_new всі записи з таблиці users. в яких поле country одно "Russia". Якщо для таблиці, в яку відбувається вставка записів, не вказано список полів, то значення для всіх полів будуть визначені на підставі результату роботи SELECT. Якщо деякі поля не визначені, то для них будуть прийнято значення за замовчуванням. Особливості синтаксису INSERT. SELECT:
  • Ім'я таблиці, в яку вставляються записи, не повинна бути присутнім в списку таблиць FROM частини SELECT. тому це може призвести до помилки вставки (адже умова WHERE частини SELECT може знайти записи, які вже вставлені цією командою раніше).
  • Іншими сценаріями заборонено виробляти вставку в таблиці, учавствующие в запиті, під час виконання цього запиту.
  • Стовпці AUTO_INCREMENT працюють, як зазвичай.

Схожі статті