Add forgein key after creating tables - mysql

I have following problem:
the table "tblverleihdaten" is supposed to implement or reference the K_Nr column from the table "tblkunden" I've already created both tables but now I don't know how I can alter them to refrence each other like in the picture. I've been searching online but couldn't transfer any of the solutions on my problem.

simp,y alter the table tbverleihdaten with these statements
ALTER TABLE tblverleihdaten
ADD FOREIGN KEY (K_Nr) REFERENCES tblkunden(K_Nr);
ALTER TABLE tblverleihdaten
ADD FOREIGN KEY (L_Nr) REFERENCES tbllaptops(L_Nr);
For more information
But then you only can add rows to tbverleihdaten if a corresponding Id exists in both other tables

Related

Deleting one of two foreign keys in a MySQL table

I mistakenly added two foreign keys in one table in MySQL even though I proceeded in the described manner to create one foreign key only. But that aside, the problem is that I need to remove the foreign key which is NOHOW related to the main table in the database which the primary keys are referenced from.
That is, I need to remove the field CId from customer table.
Tables' image
You may need to first use
SET FOREIGN_KEY_CHECKS=0;
then you can drop the foreign key
ALTER TABLE <TABLE_NAME> DROP CONSTRAINT <FOREIGN_KEY_NAME>
And then make sure you set foreign keys back using
SET FOREIGN_KEY_CHECKS=1;

DROP FOREIGN KEY not working

On PHPMyAdmin, I would like to DROP a FOREIGN KEY with
ALTER TABLE information DROP FOREIGN KEY IDX_29791883B30676A7
Because when I do the next query it's not working:
ALTER TABLE information DROP INDEX IDX_29791883B30676A7
Cannot drop index 'IDX_29791883B30676A7': needed in a foreign key constraint
However, the second query as the error that the index is use as foreigner key.
Fine, but when I do the first query I get this error:
Can't DROP 'IDX_29791883B30676A7'; check that column/key exists
So the questions are:
How do I acually check that,
How can I finally drop that key.
Foreign keys by default are prefixed with 'FK' not 'IDX'. You are trying to remove an index instead of a foreign key. You mentioned that the foreign key is: FK_29791883B30676A7 so the correct way to remove it will be:
ALTER TABLE information DROP FOREIGN KEY FK_29791883B30676A7
Once a foreign key has been created, you may find that you wish to drop the foreign key from the table. You can do this with the ALTER TABLE statement in SQL Server
I have the same problem with foreign keys, well I found a solution to removing constraint. For first take a look at:
SHOW CREATE TABLE information;
You will found the name of the rule, and then just drop it:
ALTER TABLE information DROP CONSTRAINT `name_of_rule`;
Try this
SET FOREIGN_KEY_CHECKS=0;
ALTER TABLE information DROP FOREIGN KEY IDX_29791883B30676A7;
ALTER TABLE information DROP INDEX IDX_29791883B30676A7;
SET FOREIGN_KEY_CHECKS=1;

add unique constraint to existing table column

In mysql, when creating a table, you can append:
unique(username)
but i dont know how to alter a table to add that containt.
I was trying:
alter table Company constraint unique (username)
I mixed up the syntax.
alter table Company add constraint unique (username);
but this will fail if there are duplicates... So either drop and recreate if it is a sample db, or delete out duplicates.

PHP MyAdmin Altering an existing table to create foreign keys

first post so very sorry if this seems like an obvious answer. Here's the premise of my problem. I have a database I am managing using PhpMyAdmin. I have a table called "Schedules" and want the id of the drivers on the schedule to be a foreign key that references a larger table "Users" where the ID column in this table is a primary key. Here is what i tried:
ALTER TABLE `Schedules`
ADD CONSTRAINT `FK_DriverID`
FOREIGN KEY (`Driver_ID`)
REFERENCES `users`(`ID`);
However, i get this error:
1005 - Can't create table 'Scheduler.#sql-3b7_3b9d' (errno: 150)
(Details…)
I am really at a loss with this error because im not trying to create any tables just alter an existing one. Thanks again and sorry if I butchered the formatting.
This mainly is due to a wrong primary key reference in your table.
Usually this means the key you are referencing does not exist / there might be difference in datatype between the FOREIGN KEY and the REFERENCED column / or there might be difference in column name.
Make sure that
you have a column named ID in users table
Driver_ID column have the same data type as ID column in Users table. Make sure both are exactly of the same data type.
Refer this for more information

MySQL FK syntax: insert column called practice into table cred_insurances that is FK to table practices

I need to insert a column called "practice" into table "cred_insurances" that is a FK referencing table "practices" PK "id"
You will need to ensure that your MySQL table is using the InnoDB engine, by running the following from the mysql prompt.
show create table cred_insurances
the output will include (towards the bottom) the text ENGINE=.... If it is not InnodDB, then you will first need to convert it using the following SQL. You may need to do this to the parent table as well.
ALTER TABLE cred_insurances ENGINE=InnoDB
Then you can add a column and a foreign key constraint with the following command:
ALTER TABLE cred_insurances
ADD practice INT,
ADD CONSTRAINT fk_practice
FOREIGN KEY (practice) REFERENCES practices (ID)
If you are having difficulties with errors whilst adding a foreign key, try the following command to get more detailed information on the error.
SHOW ENGINE INNODB STATUS