Jak zmienić nazwę kolumny w mysql

0

1)Jak zmienić nazwę kolumny w mysql, próbowałem alter table tabelaK rename column mateamtyka matematyka; i kilku innych ...
alter table tabelaK alter column mateamtyka rename matematyka; ale nie działają

2)Jak skopiować tabelę do nowej tabeli(utworzyć nową tabelę identyczną ze starą) z takimi samymi właściwościawi, no po prostu klon

2')i mam jescze jeden problem, a on jest taki:
mam tabelę tabela o wlaściwościach
ido=klucz,int
imie=string
imie2=str.
nazwisko=str.
matematyka=int
polski=int
oraz tabelę tabelaK
ido=int,klucz
nazwisko= varchar(50)
matematyka =int
Jak przepisać dane z odpowiednich kolumn tabeli tabela do tabeli tabelaK (jdenym poleceniem SQL)

0

ale czemu nikt nic nie napisze

0

Pierwsze co się pojawia po wpisaniu w wyszukiwarkę: https://stackoverflow.com/questions/30290880/rename-a-column-in-mysql

0

spoko że nie działa, a reszta? pytania

1

Pokaż kod bo u mnie działa bez zarzutów.

create table ex_table(id int, col1 int, col2 int);

insert into ex_table()
values (1, 100, 1);

-- pierwsze pytanie
ALTER TABLE ex_table CHANGE col1 new_col1 int;

-- drugie pytanie
create table ex_table2 as
select *
from ex_table;


create table ex_table3(id int, col1 int);

-- trzecie pytanie
insert into ex_table3(id)
select id
from ex_table;
0

mam pytanie, czy takie polecenie:
**insert into tabela set name="bar", nazwisko="vd"; ** to jakiś błąd? czy działa jakoś inaczej niż insert into tabela values(...);

0

Pierwsze to notacja mysql, drugie to standard sql. Nie znam za bardzo mysql-a więc jeżeli chodzi o wydajność to nie mogę się wypowiedzieć.

0

Podpinam się pod pytanie jak zmienić nazwę kolumny w tabeli bez zmieniania jej typu danych ?

0

@pol90 masz podane rozwiazanie na tacy jak wspomnial Marcin aż dwukrotnie, jeżeli na logikę nie wpadles na to, ze wstawiasz ten sam typ jaki jest pierwotnie to znając składnię polecenia, warto zajrzeć do dokumentacji:'
https://dev.mysql.com/doc/refman/5.7/en/alter-table.html

I przeczytać:

To change a column name but not its definition, use CHANGE. The syntax requires a column definition, so to leave the definition unchanged, you must respecify the definition the column currently has. For >example, to rename an INT NOT NULL column from b to a, do this:

ALTER TABLE t1 CHANGE b a INT NOT NULL;

Naprawdę wszystko trzeba podawać na tacy?

0

„How to change column name mysql”

0

Tu masz skrypt```php

<?php $baza = new mysqli("localhost","root","","praca"); $stara_nazwa_kolumny = addslashes($_POST["stara_wartosc"]); //print $stara_nazwa_kolumny; $nowa_nazwa_kolumny = addslashes($_POST["wartosc"]); $typ = addslashes($_POST["typ"]); $baza->query("ALTER TABLE pracownicy CHANGE $stara_nazwa_kolumny $nowa_nazwa_kolumny INT NOT NULL"); //$baza->query("ALTER TABLE pracownicy DROP COLUMN $stara_nazwa_kolumny, DROP COLUMN $nowa_nazwa_kolumny"); ``` A typy danych przed zmianą był date.
1

@pol90 ręce opadają, nie kliknąłeś linka do dokumentacji, nawet nie zadałeś sobie trudu przeczytania tego fragmentu który z niej zacytowałem i twierdzisz że nie działa ok.
Jak programujesz przez copy/paste to rób to z głową, aby nie zmieniać typu kolumny trzeba dać dokładnie taki jaki był wcześniej, a ty zrobiłeś tak:

$baza->query("ALTER TABLE pracownicy CHANGE $stara_nazwa_kolumny $nowa_nazwa_kolumny INT NOT NULL");

czyli zmieniłeś kolumnę $stara_nazwa_kolumny na $nowa_nazwa_kolumny o typie int, czyli mysql zachował się zgodnie z dokumentacją zmienil na int-a.

Widzis róznicę?

$baza->query("ALTER TABLE pracownicy CHANGE $stara_nazwa_kolumny $nowa_nazwa_kolumny DATE NOT NULL");

1 użytkowników online, w tym zalogowanych: 0, gości: 1