Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2015, 23:19   #1
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
По умолчанию процедура с проверкой наличия

Добрый день.
Есть таблица

PHP код:
CREATE TABLE `test` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
namevarchar(128NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM AUTO_INCREMENT=DEFAULT CHARSET=utf8
Есть процедура которая добавляет Имя в таблицу тест.

PHP код:
DELIMITER $$

CREATE DEFINER=`root`@`localhostPROCEDURE `test`(`nameVARCHAR(128))
BEGIN
    INSERT INTO 
`testSET `name` = `name`;
END$$

DELIMITER 
Нужно добавить условие IF, чтобы сначала проверялось есть ли это имя в таблице, и только если его нет добавлялось.

Помогите. Спасибо
ВалекFCRK вне форума Ответить с цитированием
Старый 19.04.2015, 00:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Предположу что так:
Код:
CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(`aname` VARCHAR(128))
BEGIN
    if Exists(select name from test where name=aname) then 
      INSERT INTO `test` (`name`) values (`aname`);
    end if
END$$
И я впервые вижу INSERT в таком формате как ты его описал, поэтому написал его по своему.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.04.2015, 12:10   #3
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
По умолчанию

Спасибо. Вот так получилось.

PHP код:
DELIMITER $$

USE `
bigpurse`$$

DROP PROCEDURE IF EXISTS `test`$$

CREATE DEFINER=`root`@`localhostPROCEDURE `test`(`anameVARCHAR(128))
BEGIN
    
IF NOT EXISTS (SELECT FROM test WHERE `name`=anameTHEN 
        INSERT INTO 
`test` (`name`) VALUES (aname);
    
END IF;
END$$

DELIMITER 
ВалекFCRK вне форума Ответить с цитированием
Старый 19.04.2015, 13:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

О! Я NOT упустил...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с проверкой на окружение Roman_DevilRigoll Помощь студентам 2 23.05.2014 13:27
Помогите с проверкой условия trinity19 Помощь студентам 1 14.01.2014 19:56
Проблема с Проверкой данных ssg Microsoft Office Excel 3 20.04.2013 23:56
Проблемы с проверкой AnthonyB Паскаль, Turbo Pascal, PascalABC.NET 1 21.10.2012 21:33
Помогите с проверкой в паскале neomaximus Помощь студентам 2 10.07.2008 09:41