powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно сделать выборку на уровне MySQL?
7 сообщений из 7, страница 1 из 1
Можно сделать выборку на уровне MySQL?
    #38606696
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создано 3 таблицы

Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE `auto_mark` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `auto_mark` varchar(300) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `auto_mark` (`auto_mark`(255))
) ENGINE=InnoDB AUTO_INCREMENT=220 DEFAULT CHARSET=utf8;



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE `auto_model` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `auto_mark_id` int(10) NOT NULL,
  `auto_model` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_auto_mark` (`auto_mark_id`),
  CONSTRAINT `fk_auto_mark` FOREIGN KEY (`auto_mark_id`) REFERENCES `auto_mark` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=utf8;



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE `auto_active_lots` (
  `id` bigint(30) NOT NULL AUTO_INCREMENT,
  `auto_mark_id` int(10) NOT NULL,
  `auto_model_id` int(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_auto_mark_id` (`auto_mark_id`),
  KEY `fk_auto_model_id` (`auto_model_id`),
  CONSTRAINT `fk_auto_model_id` FOREIGN KEY (`auto_model_id`) REFERENCES `auto_model` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_auto_mark_id` FOREIGN KEY (`auto_mark_id`) REFERENCES `auto_mark` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;



на уровне СУБД можно сделать колонку auto_model_id зависимой от auto_mark_id в таблице auto_active_lots? Что б отображались только auto_model_id соответствующие auto_mark_id таблицы auto_model, а не весь список auto_model?
...
Рейтинг: 0 / 0
Можно сделать выборку на уровне MySQL?
    #38606746
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык уже
Код: sql
1.
 CONSTRAINT `fk_auto_model_id` FOREIGN KEY (`auto_model_id`) REFERENCES `auto_model` (`id`) ON UPDATE CASCADE,
...
Рейтинг: 0 / 0
Можно сделать выборку на уровне MySQL?
    #38606824
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на уровне СУБД можно сделать колонку auto_model_id зависимой от auto_mark_id в таблице auto_active_lots?


Уже это сделано.


Что б отображались только auto_model_id соответствующие auto_mark_id таблицы auto_model, а не весь список auto_model?

Субд ничего не отображает.
Она только манипулирует данным.
Т.е. это придется делать руками.
...
Рейтинг: 0 / 0
Можно сделать выборку на уровне MySQL?
    #38607750
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, еще вопрос.
Добавляю таблицу
Код: plsql
1.
2.
ALTER TABLE `auto_active_lots`
ADD COLUMN `region_id`  tinyint(10) NOT NULL AFTER `price`;


добавляю ключ
Код: plsql
1.
ALTER TABLE `auto_active_lots` ADD CONSTRAINT `fk_region_id` FOREIGN KEY (`region_id`) REFERENCES `region` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE;


показывает ошибку 1005, если меняю имя ключа с fk_region_id на любой другой, ошибки нет, но срабатывает данная ошибка через раз (несколько ключей так создал), почему так происходит?
...
Рейтинг: 0 / 0
Можно сделать выборку на уровне MySQL?
    #38607770
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильнее так, вот таблица

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
CREATE TABLE `auto_active_lots` (
  `id` bigint(30) NOT NULL AUTO_INCREMENT,
  `auto_mark_id` int(10) NOT NULL,
  `auto_model_id` int(10) NOT NULL,
  `year` smallint(10) NOT NULL,
  `car_body_type_id` tinyint(10) NOT NULL,
  `color_id` smallint(10) NOT NULL,
  `energy_type_id` smallint(10) NOT NULL,
  `engine_capacity_id` smallint(10) NOT NULL,
  `price` bigint(30) NOT NULL,
  `region_id` tinyint(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_auto_mark_id` (`auto_mark_id`),
  KEY `fk_auto_model_id` (`auto_model_id`),
  KEY `fk_car_body_type_id` (`car_body_type_id`),
  KEY `fk_color_id` (`color_id`),
  KEY `fk_energy_type_id` (`energy_type_id`),
  KEY `fk_energy_capacity_id` (`engine_capacity_id`),
  KEY `fk_region_id` (`region_id`),
  CONSTRAINT `fk_region_id` FOREIGN KEY (`region_id`) REFERENCES `region` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_auto_mark_id` FOREIGN KEY (`auto_mark_id`) REFERENCES `auto_mark` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_auto_model_id` FOREIGN KEY (`auto_model_id`) REFERENCES `auto_model` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_car_body_type_id` FOREIGN KEY (`car_body_type_id`) REFERENCES `car_body_type` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_color_id` FOREIGN KEY (`color_id`) REFERENCES `color` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_energy_capacity_id` FOREIGN KEY (`engine_capacity_id`) REFERENCES `engine_capacity` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_energy_type_id` FOREIGN KEY (`energy_type_id`) REFERENCES `energy_type` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


вот вспомогательные таблицы
Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE `color` (
  `id` smallint(10) NOT NULL AUTO_INCREMENT,
  `color` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;


Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE `region` (
  `id` tinyint(10) NOT NULL AUTO_INCREMENT,
  `region` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;


почему если создавал fk_color_id с таким названием ключ создался, а с таким fk_region_id показывает ошибку, ведь значения совпадают?
...
Рейтинг: 0 / 0
Можно сделать выборку на уровне MySQL?
    #38607771
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK1988а с таким fk_region_id показывает ошибкупотому что такой уже существует.
...
Рейтинг: 0 / 0
Можно сделать выборку на уровне MySQL?
    #38607784
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftAK1988а с таким fk_region_id показывает ошибкупотому что такой уже существует.
Извините, ввел в заблуждение, скопировал с дампа с которого пробовал восстановить с таким ключем, но при восстановлении показывает ошибку - ошибка восстановления таблицы transmission (???). Вот дамп работающий.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
CREATE TABLE `auto_active_lots` (
  `id` bigint(30) NOT NULL AUTO_INCREMENT,
  `auto_mark_id` int(10) NOT NULL,
  `auto_model_id` int(10) NOT NULL,
  `year` smallint(10) NOT NULL,
  `car_body_type_id` tinyint(10) NOT NULL,
  `color_id` smallint(10) NOT NULL,
  `energy_type_id` smallint(10) NOT NULL,
  `engine_volume_id` smallint(10) NOT NULL,
  `price` bigint(30) NOT NULL,
  `region_id` tinyint(10) NOT NULL,
  `town_id` int(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_auto_mark_id` (`auto_mark_id`),
  KEY `fk_auto_model_id` (`auto_model_id`),
  KEY `fk_car_body_type_id` (`car_body_type_id`),
  KEY `fk_color_id` (`color_id`),
  KEY `fk_energy_type_id` (`energy_type_id`),
  KEY `fk_town_id` (`town_id`),
  KEY `fk_engine_volume_id` (`engine_volume_id`),
  KEY `fk_region_id1` (`region_id`),
  CONSTRAINT `fk_region_id1` FOREIGN KEY (`region_id`) REFERENCES `region` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_auto_mark_id` FOREIGN KEY (`auto_mark_id`) REFERENCES `auto_mark` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_auto_model_id` FOREIGN KEY (`auto_model_id`) REFERENCES `auto_model` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_car_body_type_id` FOREIGN KEY (`car_body_type_id`) REFERENCES `car_body_type` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_color_id` FOREIGN KEY (`color_id`) REFERENCES `color` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_energy_type_id` FOREIGN KEY (`energy_type_id`) REFERENCES `energy_type` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_engine_volume_id` FOREIGN KEY (`engine_volume_id`) REFERENCES `engine_volume` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk_town_id` FOREIGN KEY (`town_id`) REFERENCES `town` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



вот вспомогательные таблицы

Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE `color` (
  `id` smallint(10) NOT NULL AUTO_INCREMENT,
  `color` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;



Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE `region` (
  `id` tinyint(10) NOT NULL AUTO_INCREMENT,
  `region` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;



почему если создавал fk_color_id с таким названием ключ создался, а с таким fk_region_id показывает ошибку, ведь значения совпадают? Создается только с отличным именем ключа fk_region_id1 или fk_region_id100500 и т.д.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно сделать выборку на уровне MySQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]