Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ссылка на другой столбец. FOREIGN KEY? 
:(
    Опции темы
Enelar
Дата 2.8.2011, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Добрый день, нет у меня опыта работы с FOREIGN KEY, и первичный брейнфак ничего не дал.

Хотелось бы решить две задачи.

1) При выборке SELECT * показывалось фиктивное поле FROM_UNIXTIME(field_time)
2) В таблицу Б можно было добавить(или изменить) только те записи, в которых значение поле field_b существовало в таблице A, поле field_a, а также из таблицы А нельзя было удалять или менять записи так что бы нарушилось это правило.

Простите, но нагло прошу пример ибо не получается( smile 

Это сообщение отредактировал(а) Enelar - 2.8.2011, 18:00
PM MAIL   Вверх
Akina
Дата 2.8.2011, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



(2) и вправду делается через внешние ключи (то есть возможны и иные способы, но этот наиболее прост).
Что же до (1) - я лично НИЧЕГО не понял...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Enelar
Дата 2.8.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Цитата(Akina @ 2.8.2011,  18:40)
(2) и вправду делается через внешние ключи (то есть возможны и иные способы, но этот наиболее прост).
Что же до (1) - я лично НИЧЕГО не понял...

таблица action, time
Выполняю SELECT * FROM table LIMIT 1

Выходит строка вида
action,        time,                        FROM_UNIXTIME(time)
"fall asleep", 3424234432534, "2011-23-43 32:43"


А на счет второго не подскажете?  smile 
PM MAIL   Вверх
Akina
Дата 2.8.2011, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Enelar @  2.8.2011,  21:36 Найти цитируемый пост)
А на счет второго не подскажете? 

Уже ж подсказал вроде... сам не в состоянии найти? ну вот тебе сцылка

По первому вопросу - яснее не стало...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sir_nuf_nuf
Дата 3.8.2011, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 8
Всего: 31



Цитата(Enelar @  2.8.2011,  20:36 Найти цитируемый пост)
таблица action, time
Выполняю SELECT * FROM table LIMIT 1

Выходит строка вида
action,        time,                        FROM_UNIXTIME(time)
"fall asleep", 3424234432534, "2011-23-43 32:43"


Так нельзя.  * - это ровно то что есть в таблице.
Указывайте явно какие поля выбираете.

Код

SELECT action, time,  FROM_UNIXTIME(time) FROM table LIMIT 1



В некоторых базах данные есть calculated fields, но MySQL их не поддерживает.
Можно еще создать нормальное поле в таблице table и наполнять его тригерами. 


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Enelar
Дата 3.8.2011, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Цитата(sir_nuf_nuf @ 3.8.2011,  09:50)
Цитата(Enelar @  2.8.2011,  20:36 Найти цитируемый пост)
таблица action, time
Выполняю SELECT * FROM table LIMIT 1

Выходит строка вида
action,        time,                        FROM_UNIXTIME(time)
"fall asleep", 3424234432534, "2011-23-43 32:43"


Так нельзя.  * - это ровно то что есть в таблице.
Указывайте явно какие поля выбираете.

Код

SELECT action, time,  FROM_UNIXTIME(time) FROM table LIMIT 1



В некоторых базах данные есть calculated fields, но MySQL их не поддерживает.
Можно еще создать нормальное поле в таблице table и наполнять его тригерами.

Ясно, просто хотел что бы навикат, или pma показывали еще одно поле при "обзоре"

Akina, ясно. Я просто долго вдумчиво читал, не понял, думал тут разжуют. Ладно еще поковыряюсь.
PM MAIL   Вверх
Akina
Дата 3.8.2011, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Enelar @  3.8.2011,  14:23 Найти цитируемый пост)
 Я просто долго вдумчиво читал, не понял, думал тут разжуют.

Господи, чо там разжёвывать? создай две таблички по паре полей с FK из одной в другую, и посмотри, что будет, если пытаться выполнить запрос, нарушающий целостность данных... делов-то на 5 минут, типов запросов-то от силы с десяток, зато всё сразу увидишь собственными глазами.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.