С Новым годом! Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
1

PRIMARY/foreign KEY

26.09.2016, 12:49. Показов 1603. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,
Тoлько начал знакомство с PostgresSQL
сейчас перевожу табл с MySQL в PostgresSQL
есть такая табл
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TABLE `users` (
  `name` VARCHAR(45) NOT NULL,
  `email` VARCHAR(45) DEFAULT NULL,
  `password` VARCHAR(45) DEFAULT NULL,
  `login_date` datetime DEFAULT NULL,
  `verification` VARCHAR(45) DEFAULT NULL,
  `active` INT(11) DEFAULT '0',
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
 
CREATE TABLE `user_role` (
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `NAME` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
 
CREATE TABLE `role_mapping` (
  `USER_ID` VARCHAR(255) NOT NULL,
  `ROLE_UID` INT(11) NOT NULL,
  PRIMARY KEY (`USER_ID`,`ROLE_UID`),
  KEY `fk_role_user` (`ROLE_UID`),
  CONSTRAINT `fk_role_user` FOREIGN KEY (`ROLE_UID`) REFERENCES `user_role` (`ID`),
  CONSTRAINT `fk_user_role` FOREIGN KEY (`USER_ID`) REFERENCES `users` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
перекидываю ее в postgres
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE TABLE "SITE_NEW".users (
"name" VARCHAR(45) NOT NULL,
"email" VARCHAR(45) DEFAULT NULL,
"password" VARCHAR(45) DEFAULT NULL,
"login_date" TIMESTAMP WITH TIME ZONE  DEFAULT NULL,
"verification" VARCHAR(45) DEFAULT NULL,
"active" INTEGER DEFAULT '0',
PRIMARY KEY ("name")
);
 
CREATE TABLE "SITE_NEW".user_role (
"ID" SERIAL PRIMARY KEY,
"NAME" VARCHAR(45) NOT NULL
);
 
CREATE TABLE "SITE_NEW".role_mapping (
"USER_ID" VARCHAR(255) REFERENCES users(name),
"ROLE_UID" INTEGER REFERENCES user_role("ID"),
PRIMARY KEY ("USER_ID","ROLE_UID")
Верно ли я сделал role_mapping?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2016, 12:49
Ответы с готовыми решениями:

Автозаполнение PRIMARY KEY
Здравствуйте. Как сделать автозаполнение PRIMARY KEY. Пользуюсь pgAdmin или Postgrise Enterprise...

Как существующей колонке задать свойство PRIMARY KEY?
если пишу так ALTER TABLE PUBLIC.STATISTICS ADD CONSTRAINT STATISTICS_PKEY PRIMARY KEY ("ID");...

Какой индекс нужен PRIMARY KEY btree или UNIQUE CONSTRAINT btree ?
=> \d+ quest_content Table "public.quest_content" Column |...

PRIMARY KEY
приветствую. У меня есть таблица с 6 полями, 1 из которых primary key. одна из обязательных функций...

1
1254 / 970 / 382
Регистрация: 02.09.2012
Сообщений: 2,994
26.09.2016, 23:17 2
1. По части связи таблиц вроде не видно ошибок (хотя не запускал). PG правда все равно преобразует к виду CONSTRAINT "имя" FOREIGN KEY ...., но это уже тонкости
2. Кажется KEY в mysql - это создание индекса, вы его не указали в PG. Нужно CREATE INDEX сделать.
3. Ну и синтаксический сахар. На самом деле писать "name" все равно, что писать name без кавычек (но "Name" != Name), поэтому вы переименуйте и либо везде используйте кавычки (у имен схем, таблиц и полей), либо их вообще не используйте. Потом вылезет боком, надо будет вспоминать как оно было написано (в кавычках или без), почему ошибка синтаксиса в SQL выражении и т.д. Также помним, что простые идентификаторы name, password и т.п. являются ключевыми словами (функциями) и можно нарваться на глупую ошибку разбора SQL.
0
26.09.2016, 23:17
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2016, 23:17
Помогаю со студенческими работами здесь

Создание FOREIGN KEY в MS SQL
Привет! Вопрос заключается вот в чем: Нужна таблица с внешним ключом на саму себя. Причем...

constraint primary key
Какая разница между этими двумя строками: CONSTRAINT id_constraint PRIMARY KEY (id) и PRIMARY...

drop index PRIMARY KEY ???
Help plz Kak steret' index - PRIMARY KEY s pomoshiu SQL? Zaranee blagodaren!

Трoйнoй Вaн-Дaмм PRIMARY KEY
Есть ли смысл делaть трoйнoй ключ в тaблеице? Не убьёт ли этo прoизвoдительнoсть? Ну типa: В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru