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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Pkey auto_inkr. НЕ принимается как Foreign_key, auto_inkremet PKey не могу назначить  
:(
    Опции темы
Nimrod
Дата 14.5.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Читал, читаю, голова как бубен... smile 
Вопрос :

tab_1:
PKey, auto_inkrement.

tab2:
Fkey должен указывать на tab_1.Pkey.

Но никак это не принимается! Если автоинкремент, примари -нет и все! А мне же нужно уникальное значение. По этому Fkey я хотел бы тянуть из таблицы tab_1 данные.
Пример:
Табл. Автопарк, где вместо "водила" - ссылка на Fkey сотрудников. А там уж разобраться можно.

стоит:
phpMyAdmin 2.9.2
MySQL      5.0.27


спасибо.


PM MAIL   Вверх
Ignat
Дата 14.5.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Запросы CREATE TABLE в студию.

Добавлено @ 16:07
Какой тип таблиц


--------------------
Теперь при чем :P
PM   Вверх
SergeBS
Дата 14.5.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 2
Всего: 22



Nimrod, 
Цитата
auto_inkrement

Нет такого.
Есть auto_increment.
Пример из доки:
Код

CREATE TABLE jokes (
        a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
        joke TEXT NOT NULL);


PM MAIL   Вверх
Nimrod
Дата 14.5.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



INNODB тип таблиц

Запрос:
Код


$query = "CREATE TABLE Employees (
                  IDemployee int NOT NULL auto_increment,
                  Name varchar(255) NOT NULL default '',
                  MiddleName varchar(255) NOT NULL default '',
                  ................................
                  last_action_date TIMESTAMP default '0000-00-00',
                  empl int(11) NOT NULL,

                  KEY Email(Email),
                  PRIMARY KEY (IDemployee),
                              
                  
                )";    


 $query = "CREATE TABLE Vehicles (
              Pk_Vehicles int(12) UNSIGNED NOT NULL auto_increment,
              Vehicle varchar(255) NOT NULL default '',
              PkEmployee varchar(255) NOT NULL default '',
             ....................
              Comments varchar(255) NOT NULL default '',
              last_action_date TIMESTAMP default '0000-00-00',
                          FK_employee int(11) NOT NULL
              
              PRIMARY KEY (Pk_Vehicles),
              KEY Vehicle(Vehicle),
              KEY (PkEmployee)
              
              FOREIGN KEY (FK_employee) REFERENCES Employee(IDemployee)
                          ON UPDATE CASCADE


    


добавлю, я "игрался" по -разному в ПХПАдмине. Ничего не выходит

Добавлено через 6 минут и 53 секунды
auto increment описка просто. Два за English!

PM MAIL   Вверх
Nimrod
Дата 14.5.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если не трудно все же :

PrimaryIndex, auto increment    может приниматься в качестве Foreign Key или нет?
Читаю что да вроде бы. А на деле... В простеньком примере из доков только получается.

Я хочу просто отдать уникальность строк в плане присвоения им значений MySQL, чтобы не PHP или FLEX/FLASH изгалялся. С тем условием чтобы автоматом таблицы извещались о нововведениях (ну это собственно и есть базы наверно, в частности).

Если ламерски объяснить: Автомобили, колонка водилы. С учетом, что они работники должна же быть просто ссылка на таблицу персонал. 
Равно как и на тот же персонал надо связь иметь при, скажем, написал статью работник-кинул ее в базу, туда же по его паролю доступа ушла ссылка на персонала таблицу. ОТкуда опять же по ID возьмем все что надо.
PM MAIL   Вверх
Kesh
Дата 14.5.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 15
Всего: 54



Создай просто таблицу, а потом...

Код

ALTER TABLE `vehicles` ADD CONSTRAINT `FK_employee` FOREIGN KEY `FK_employee` (`FK_employee`)
    REFERENCES `employees` (`IDemployee`)
    ON DELETE CASCADE
    ON UPDATE CASCADE;



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
SergeBS
Дата 15.5.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 2
Всего: 22



Nimrod, 
Я тебе совсем простой совет дам: пробуй "по нарастающей" таблицу создавать. Типа вначале 1 поле создал - убил, затем 2 поля создал - убил. Так до строки с ошибкой и доберешься. Явно дело не в foreign key.
PM MAIL   Вверх
Nimrod
Дата 15.5.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо всем!

Я действительно создаю таблицы одни PHP скриптом, таблицы полей по 15-20. Может и правда там что-то закралось.
Хорошо что просто подтвердили что это работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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