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