![]()  | 
		
Задавайте вопросы, мы ответим
Вы не зашли.

вероятно DELIMITER не сменили
Неактивен
да вы правы дело именно в этом, забыл сменить.
Неактивен
А можно автоматически заполнять колонки в таблице? 
Допустим есть таблица:
create table book (
    id int not null primary key,
    name char(80),
    count int not nutll,
    price int not nutll,
   sum int not null,
);
Как то можно заполнить колонку sum автоматически? чтобы подставлялось что-то вроде      sum= count * price 
пробовал с помощью триггера, ругается что нельзя изменять данные в той таблице из которой вызывается триггер.
Неактивен

триггер должен быть before
ещё есть генерируемые колонки
Неактивен
Спасибо по поводу генерируемых колонок интересно почитаю. 
Но нашел еще один способ прямо в выборке    (
select count, price, (count*price) AS sum from book;
Неактивен
Как сделать сортировку по 2 столбцам?
id_book  |   name_shop   |   count
---------------------------------------
  111             Shop1              1
  111             Shop1              1
  333             Shop1              1 
  444             Shop2              1
Сортировку по name_shop и id_book (чтобы можно было узнать информацию о том сколько книг продали в конкретно магазине)
count      name_shop
-------------------------
    2             Shop1
    1             Shop2
Неактивен

перечисляете поля через запятую
только сортировку или группировку?
имхо у вас группировка по одному полю и подсчет уникальных count(distinct )
Неактивен
Да Группировку это я не так написал извиняюсь. Чтобы в результате получился вывод как во второй таблице
Неактивен

select count(distinct id_book), name_shop ... group by name_shop
Неактивен
спасибо тебе все получилось!
Неактивен
Как сохранить базу данных?
Например я создал базу данных, в ней необходимые таблицы, затем их заполнил. И как мне теперь их сохранить чтобы на другом компьютере все это можно было восстановить?
Почитал что делают вот такой командой:
mysqldump -u USER -pPASSWORD DATABASE > dump.sql
я в консоли mysql ввожу   SELECT user();     в ответ получаю (root@localhost)
далее пароль который я ввожу при подключении к mysql  ( 123456 )
База данных у меня называется test;
В результате я пишу такую команду:
mysqldump -u root -p123456 test > dump.sql
Выдается ошибка что нарушен синтаксис. Что у меня не так?
Неактивен

Неактивен
Есть какой-нибудь способ отменить ввод данных если произошло определенное условие?
Допустим в наличии есть 3 экземпляра одной книги. 3 человека ее купили, а если 4 захочет купить тогда операция не пройдет.
Есть таблица книги:
create table book (
    id int not null primary key,
    coun_book int not null,          //количество книг
    name_book char(80)
);
покупатели
create table customer (
    id int not null,
    name_user char(20),
    id_books int
    foreign key(id_books) references book(id)
);
insert into book values(1, 3, 'Book1');
insert into customer values(1, 'Vasya' 1); - купили 1 книгу 
insert into customer values(2, 'Petya' 1); - купили 2 книгу
insert into customer values(3, 'Dima' 1); - купили 3 книгу
insert into customer values(4, 'Roma' 1); - а вот это строка уже не должна сработать потому что уже все книги распроданы.
Можно ли это как-то реализовать?
Неактивен

при вставке в триггере проверять
https://sqlinfo.ru/forum/viewtopic.php?id=7650
Неактивен
create table book (
    id int not null primary key,
    count_book int not null,
    name_book char(80)
)engine=innodb;
create table customer (
    id int not null,
    name_user char(20),
    id_books int,
    foreign key(id_books) references book(id)
)engine=innodb;
DELIMITER $$
CREATE TRIGGER new_profile BEFORE INSERT ON customer
    for each row
    begin
    declare colvo int;
    select count_book from book where id = NEW.id_books INTO colvo;
    if(colvo < 4) THEN
      select * from xxx;
    end if;
END $$
DELIMITER ;
выдает ошибку:  Not allowed to return a result set from a trigger
нашел тему тут на форуме      https://sqlinfo.ru/forum/viewtopic.php?id=7096
вроде все пишу как там но не работает.
Неактивен

select * from xxx;
в триггере нельзя использовать select без into
Неактивен
Vasya спасибо тебе огромнейшее за твою помощь!!!
Если бы не ты я бы с этим разбирался еще очень и очень долго. Столько всяких нюансов которые совсем не очевидны.
Неактивен