Houston, we have a problem.

Вставка записи в таблицу



Для вставки записи в таблицу используется оператор INSERT IGNORE.
INSERT IGNORE [ IGNORE ] [ INTO ] tbl [( col_nаmе, ... )] VALUES (expression , ... )

Вставка числовых значений в таблицу


Создадим таблицу
CREATE TABLE tbl (
id INT(11) NOT NULL DEFAULT '5',
id_cat INT(11) DEFAULT NULL
);


Вставим значения
INSERT IGNORE INTO tbl VALUES (10, 20);
INSERT IGNORE INTO tbl (id_cat, id) VALUES (10, 20);
INSERT IGNORE INTO tbl (id) VALUES (30);
INSERT IGNORE INTO tbl () VALUES ();
INSERT IGNORE INТO tbl (id, id_cat) VALUES (DEFAULT, DEFAULT );


Просмотр содержимого таблицы
SELECT * FROM tbl;

Альтернативный синтаксис оператора INSERT IGNORE (СУБД MySQL)
INSERT IGNORE INTO tbl SET id = 40, id_cat = 50;
INSERT IGNORE INTO tbl SET id = 50;


Вставка строковых значений в таблицу


Создадим таблицу
CREATE TABLE catalogs (
id_catalog INT(11) NOT NULL,
name TINYTEXT NOT NULL
);


Добавление новой записи в таблицу
INSERT IGNORE INTO catalogs VALUES (1, 'Процессоры');
INSERT IGNORE INTO catalogs VALUES (2, "Память");

Строковые значения необходимо помещать в кавычки, в то
время как числовые значения допускается использовать без них.
Вместо одиночных кавычек можно использовать двойные кавычки.
Когда в текстовое поле необходимо вставить строку, содержащую
двойные кавычки, можно использовать для обрамления строки одиночные
кавычки и наоборот.

(!!!) При помещении в базу данных текста , набранного пользователем, всегда
следует экранировать кавычки, для того чтобы предотвратить возникновение
ошибки и атаку SQL-инъекцией.


Вставка календарных значений в таблицу



CREATE TABLE tbl (
id INT(11) NOT NULL,
putdate DATETIME NOT NULL,
lastdate DATE NOT NULL
);


Вставка календарных значений
INSERT IGNORE INTO tbl VALUES(1, '2007-01-03 0:00:00', '2007-01-03');

Для получения текущего времени удобно вос­пользоваться
встроенной функцией MySQL - NOW ()

INSERT IGNORE INTO tbl VALUES(3, NOW(), NOW());

Для получения сдвига даты относительно текущей можно прибавлять и вы­читать
интервалы. Для этого используется ключевое слово INTERVAL, после
которого следует временной интервал.
INSERT IGNORE INTO tbl VALUES (4, '2007-01-01 0:00:00' - INTERVAL 3 WEEK, NOW() + INTERVAL 3 MONTH);


Вставка уникальных значений в таблицу


Первичный ключ таблицы ( PRIМARY КЕУ) или столбец, индексированный
уникальным индексом (UNIQUE ), не могут иметь повторяющихся значений.
Вставка записи со значением, уже имеющимся в таблице, приводит к возник­новению
ошибки.

CREATE TABLE tbl (
id INT(11) NOT NULL,
name TINYTEXT NOT NULL,
PRIMARY KEY (id)
);


Если необходимо, чтобы новые записи с дублирующим ключом
отбрасывались без генерации ошибки, следует добавить после
оператора INSERT IGNORE клю­чевое слово IGNORE.

INSERT IGNORE INTO tbl VALUES (1, 'Видеоадаптеры');
INSERT IGNORE IGNORE INTO tbl VALUES (1, 'Видеоадаптеры');
SELECT * FROM tbl;


Генерации ошибки не происходит, тем не менее,
новая запись также не добавляется.

АUTO_INCREMENT

Многострочны й оператор INSERT IGNORE

@темы: MySQL